1)
if (((w || x) || y) || z)
2)
if (w || x || y || z)
我在很多我正在研究的代码中看到第一个,我想知道我是否可以将它简化为第二个。
答案 0 :(得分:7)
是的,这两个陈述是等价的。
7.2.1 Operator precedence and associativity
当操作数出现在两个具有相同优先级的运算符之间时,运算符的关联性控制着执行操作的顺序:
- 除赋值运算符外,所有二元运算符都是左关联运算符,这意味着操作从左到右执行。例如,x + y + z被评估为(x + y)+ z。
答案 1 :(得分:0)
简而言之,在第一个语句中,您正在检查w,x,y或z中是否有任何一个为真。因此,第二个陈述实际上等同于第一个陈述。