2

1)

if (((w || x) || y) || z)

2)

if (w || x || y || z)

我在我正在处理的许多代码中看到了第一个,我想知道是否可以将它简化为第二个。

4

2 回答 2

7

是的,这两个语句是等价的。

7.2.1 运算符优先级和结合性

当一个操作数出现在具有相同优先级的两个运算符之间时,运算符的关联性控制了执行操作的顺序:

  • 除赋值运算符外,所有二元运算符都是左结合的,这意味着运算是从左到右执行的。例如,x + y + z 被计算为 (x + y) + z。
于 2012-10-16T01:22:56.160 回答
0

简而言之,在第一个语句中,您正在检查 w、x、y 或 z 中的任何一个是否为真。因此,第二个陈述实际上等同于第一个。

于 2012-10-16T01:24:09.980 回答