在使用 && 或 || 时使用圆括号有区别吗?
Does using a parenthesis make a difference when using && or ||?
一个比另一个更受欢迎吗?如果是,为什么?
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"
括号可用于对逻辑表达式进行分组,就像在数学表达式中一样。
让优先顺序更清晰
在这种情况下不需要它们,因为您只使用 2 个表达式。
但是在使用 OR
和 AND
的类似情况下会发生什么?
它可能导致模棱两可的情况:
if (a && b || c)
将被解释为:
if ((a && b) || c)
当您希望将表达式视为:
if (a && (b || c))
一个比另一个更受欢迎吗?如果是,为什么?
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"
括号可用于对逻辑表达式进行分组,就像在数学表达式中一样。
让优先顺序更清晰
在这种情况下不需要它们,因为您只使用 2 个表达式。
但是在使用 OR
和 AND
的类似情况下会发生什么?
它可能导致模棱两可的情况:
if (a && b || c)
将被解释为:
if ((a && b) || c)
当您希望将表达式视为:
if (a && (b || c))