java短路运营商

时间:2014-06-22 18:03:39

标签: java operators

我怀疑短路运营商的优先权。

短路运营商的典型例子如下。

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

这里使用速记运算符可以防止零除错,因为从不执行num / denom。

现在我的问题是Java说“/”运算符的优先级高于“&&”那么'&&'的左侧怎么样?在'/'.?

之前评估

1 个答案:

答案 0 :(得分:5)

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

a && b / c > 0

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

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

然后从左到右评估表达式。

如果a为false,则整个表达式为false,甚至不评估第二项。

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