用else if语句无法理解java数学类(下面的代码)

时间:2012-08-07 22:52:44

标签: java class math if-statement

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);
    }
}

我不明白两个“其他ifs”的符号如何等于2。该程序如何知道选择哪一个?因为2个选项等于1所以不意味着其中一个没有被使用?我使用的这本书有错字吗?我可以使用一些澄清,谢谢!

2 个答案:

答案 0 :(得分:5)

这绝对是一个错字,第三个条件(第二个sign==1永远不会。它应该是if (sign == 2)

答案 1 :(得分:1)

小提示:打印出sign变量。这样你就可以看到它是如何变化的。