我怀疑短路运营商的优先权。
短路运营商的典型例子如下。
if(denom!= 0&& num / denom> 10)
这里使用速记运算符可以防止零除错,因为从不执行num / denom。
现在我的问题是Java说“/”运算符的优先级高于“&&”那么'&&'的左侧怎么样?在'/'.?
之前评估答案 0 :(得分:5)
/
的优先级高于>
,其优先级高于&&
。所以,表达式
a && b / c > 0
与
相同a && (b / c) > 0
与
相同a && ((b / c) > 0)
然后从左到右评估表达式。
如果a
为false,则整个表达式为false,甚至不评估第二项。
如果a
为真,则首先评估b / c
,并将结果与0进行比较。