1
public class S1P3 {
    public static void main (String[] args) throws Exception{
        int num1 = (int)(Math.round(Math.random()*10));
        int num2 = (int)(Math.round(Math.random()*10));
        int sign = (int)(Math.round(Math.random()*3));
        int answer;
        System.out.println("\n\n*****");
        if(sign==0)
        {
            System.out.println(num1+" * "+num2);
            answer = num1*num2;
        }
        else if(sign==1)
        {
            System.out.println(num1+" / "+num2);
            answer = num1/num2;
        }
        else if(sign==1)
        {
            System.out.println(num1+" - "+num2);
            answer = num1-num2;
        }
        else
        {
            System.out.println(num1+" % "+num2);
            answer = num1%num2;
        }
        System.out.println("*****\n");
        System.out.println("3 ...");
        Thread.sleep(1000);
        System.out.println("2 ...");
        Thread.sleep(1000);
        System.out.println("1 ...");
        Thread.sleep(1000);

        System.out.println("ANSWER: "+answer);
    }
}

2 つの「else if」の符号が 2 に等しい理由がわかりません。プログラムはどれを選択するかをどのように知るのでしょうか? 2 つのオプションは 1 に等しいので、そのうちの 1 つが使用されていないということではありませんか? 私が使った本にタイプミスはありましたか?私はいくつかの明確化を使用することができます, ありがとう!

4

2 に答える 2

5

これは間違いなくタイプミスです。3 番目の条件 (2 番目sign==1) には決して到達しません。if (sign == 2)代わりにすべきです。

于 2012-08-07T22:54:58.653 に答える
1

小さなヒント:sign変数を出力します。そうすれば、どのように変化するかがわかります。

于 2012-08-07T22:59:56.220 に答える