通过Java运算符优先级表:
'|' 逻辑 OR 运算符的优先级高于 '&&' 逻辑 AND 运算符。
我使用以下代码检查了上述事实
int y = 5;
int x = 2;
if( x++ > 2 && ++y > 2 | true )
; //do nothing
System.out.println("x = " + x + " y = " + y);
但上面的行给出输出为 -
x = 3 y = 5
表明 x++ 正在首先评估。
甚至我把括号放在条件周围 |
if( x++ > 2 && (++y > 2 | true) )
;
但我仍然得到相同的输出。
为什么运算符优先级在这种情况下不起作用?