【问题标题】:Can't understand java math class with an else if statement (Code below)无法理解带有 else if 语句的 java 数学类(代码如下)
【发布时间】:2012-08-07 22:52:44
【问题描述】:
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);
    }
}

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

【问题讨论】:

  • 澄清: 这是一个错误示例。永远不要这样做!
  • @PaulVargas 和 a example 是一个语法错误的例子 ;)
  • 对不起。它烧毁了我的服务器。对于给您带来的不便,我深表歉意。

标签: java class math if-statement


【解决方案1】:

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

【讨论】:

  • 啊哈是这么想的,这让我困惑了一段时间,谢谢!所以 0 是第一个选择,1 是下一个选择,2 是下一个选择,但是,对于 ELSE 发生,这意味着 3 必须“随机”选择正确吗?同样,当我制作变量并将其设置为 *3 时,这是否意味着它开始像“0 1 2 3”一样计数,还是因为它计数 3 个数字而变为“0 1 2”?因为java总是从0开始计数,对吗?很抱歉有额外的问题谢谢!
  • 确实,只有当sign 等于3 时,才会到达最后的else 部分。 Java中的数组索引从0开始,但我不确定您所说的“开始计数”是什么意思,请您详细说明一下吗?
【解决方案2】:

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

【讨论】:

  • 我用它作为一种简单的方法来跟踪应用程序运行期间变量发生的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
相关资源
最近更新 更多