2
if (((w || x) || y) || z)
2)
if (w || x || y || z)
我看到很多代码的第一个我的工作,我想知道如果我可以把它简化为第二个。
if (((w || x) || y) || z)
2)
if (w || x || y || z)
我看到很多代码的第一个我的工作,我想知道如果我可以把它简化为第二个。
是的,这两条语句是等价的。
7.2.1 Operator precedence and associativity
当操作数两个操作员之间发生具有相同优先级时,操作者的关联性控制操作的执行顺序:
- 除了赋值运算符,所有二元运算符都是左关联的,这意味着操作从左到右执行。例如,x + y + z被评估为(x + y)+ z。
,在第一条语句,你是否有任何W,X,Y或Z是真正的检查。因此,第二种说法实际上相当于第一种说法。
我是不是很笨? 'x + y * z'在这里站在哪里? – spender
Ah:“如果两个操作符之间出现操作数优先级相同”,则上述语句适用。可能值得添加您的答案,因为单独采用,您的报价具有误导性。 – spender