快问.在Java中,AND优先于OR吗?例如,这段代码是如何解释的?
if(statement1 && statement2 || statement3)
Run Code Online (Sandbox Code Playgroud)
这是一样的吗?
if(statement1 && (statement2 || statement3))
Run Code Online (Sandbox Code Playgroud)
要么
if((statement1 && statement2) || statement3)
Run Code Online (Sandbox Code Playgroud)
提前致谢.
是.这很容易找到,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).通过与众所周知的规则*类比优先于+,这就解释了为什么逻辑运算符应该以这种方式进行评估.