gpt4 book ai didi

java - Java 中 && 和被零除错误的不一致

转载 作者:搜寻专家 更新时间:2023-10-31 08:05:30 27 4
gpt4 key购买 nike

我刚开始使用 Java,但遇到了一些不一致的情况。为什么这样做:

if ((d != 0) && (n / d < 3)) {
compute(a, d);
}

但是如果我这样做:

if ((n / d < 3) && (d != 0)) {
compute(a, d);
}

我收到这个错误:

Exception in thread "main" java.lang.ArithmeticException: / by zero
at compute.main(compute.java:63)

最佳答案

Java 使用 Short-Circuit Logic 计算表达式.这意味着对于 && , 如果左边的表达式是 false ,那么 Java 就不会计算正确的表达式(因为整个表达式已经保证为假)。

在您的第一个示例中,如果 d == 0 , 然后 d != 0是假的,所以它不会评估 n / d .在你的第二个例子中,如果 d == 0 ,然后评估 n / d < 3会给你除以零的错误。

关于java - Java 中 && 和被零除错误的不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17254007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com