一个人优先于另一个人吗?如果是这样,为什么?
int value1 = 1;
int value2 = 2;
if (value1 == 1 && value2 == 2) {
System.out.println("works");
}
if ((value1 == 1) && (value2 == 2)) {
System.out.println("works");
}
预期匹配实际结果。两者都打印字符串“ works”
答案 0 :(得分:6)
与在数学表达式中一样,括号对于将逻辑表达式分组非常有用。
它使优先顺序更清楚。
在这种情况下,因为您只使用2个表达式,所以不需要它们。
但是在同时使用OR
和AND
的情况下会发生什么?
这可能会导致模棱两可的情况:
if (a && b || c)
将被解释为:
if ((a && b) || c)
当您希望将表达式视为:
if (a && (b || c))
答案 1 :(得分:-4)
不,完全相同。因为1 && ...不是有效的表达式,因此读取它的方式就像设置方括号一样。