<分区>
快速提问。在 Java 中,AND 是否优先于 OR?例如,这段代码是如何解释的?
if(statement1 && statement2 || statement3)
这和哪个一样?
if(statement1 && (statement2 || statement3))
或
if((statement1 && statement2) || statement3)
提前致谢。
标签 java
<分区>
快速提问。在 Java 中,AND 是否优先于 OR?例如,这段代码是如何解释的?
if(statement1 && statement2 || statement3)
这和哪个一样?
if(statement1 && (statement2 || statement3))
或
if((statement1 && statement2) || statement3)
提前致谢。
最佳答案
是的。很容易发现,API 文档有一个列出运算符优先级的表格:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
但是,我认为理解为什么 &&
应该优先于 ||
是个好主意:前者在很多方面都是乘法作用,而后者是加法作用。考虑两个独立事件A
和B
,(A and B)
的概率是p(A)*p(B)
而 (A or B)
的概率是 p(A) + p(B)
。通过类比著名的 * 优先于 + 的规则,这解释了为什么应以这种方式评估逻辑运算符。
关于java - AND 是否优先于 OR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629841/