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) )
;
しかし、それでも同じ出力が得られます。
この場合、演算子の優先順位が機能しないのはなぜですか?