java 短路运算符

标签 java operators

我的疑问是短路运算符的优先级。

下面是短路运算符的经典示例。

if(denom != 0 && num/denom > 10 )

这里使用简写运算符可以防止被零除错误,因为 num/denom 永远不会被执行。

现在我的问题是 Java 说 '/' 运算符的优先级高于 '&&' ,那么为什么 '&&' 的左侧在 '/' 之前计算?

最佳答案

/ 的优先级高于 >,而 > 的优先级高于 &&。所以,表达式

a && b / c > 0

相同
a && (b / c) > 0

相同
a && ((b / c) > 0)

然后从左到右计算表达式。

如果 a 为 false,则整个表达式为 false,甚至无需计算第二项。

如果a为真,则首先评估b/c,并将结果与​​0进行比较。

关于java 短路运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24354117/

相关文章:

java - 如何更新 JLabel 中的 ImageIcon?

java - 为什么资源包没有加载到java支持的webscript中

java - 安排Android服务在手机重启后重新启动

c++ - 无论情况如何,字符串比较的小于运算符都会产生相同的结果

java - 如何覆盖 WebSphere Community Edition (WCE) 2.1 的默认持久性提供程序 - OpenJPA

java - Java 中字节和短基本类型的用途

c - 三元运算符

shell - 使用 ! shell 命令上的运算符

javascript - && 运算符和 bool 函数返回 false 时的执行

delphi - Delphi 相当于向集合添加元素的 "+="是什么?