Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
1)
if (((w || x) || y) || z)
2)
if (w || x || y || z)
我在我正在处理的许多代码中看到了第一个,我想知道是否可以将它简化为第二个。
是的,这两个语句是等价的。
7.2.1 运算符优先级和结合性
当一个操作数出现在具有相同优先级的两个运算符之间时,运算符的关联性控制了执行操作的顺序: 除赋值运算符外,所有二元运算符都是左结合的,这意味着运算是从左到右执行的。例如,x + y + z 被计算为 (x + y) + z。
当一个操作数出现在具有相同优先级的两个运算符之间时,运算符的关联性控制了执行操作的顺序:
简而言之,在第一个语句中,您正在检查 w、x、y 或 z 中的任何一个是否为真。因此,第二个陈述实际上等同于第一个。