【发布时间】:2014-01-17 14:43:02
【问题描述】:
boolean a = true;
boolean b = true;
boolean c = false;
System.out.println(a || b && c); // true
System.out.println(b && c || a); // true
我最近才发现这里有点奇怪。为什么&& 和|| 处于不同的优先级?我会假设他们处于同一水平。以上说明了这一点。这两个陈述都是正确的,即使从左到右的评估结果第一个为假,第二个为真。
有人知道这背后的原因吗?
(顺便说一句,我会在这里使用大量括号,但这是旧代码提出的问题)
【问题讨论】:
-
注意:有关信息,您可以在此处找到 Java 运算符优先级表:docs.oracle.com/javase/tutorial/java/nutsandbolts/…