私のコードは次のとおりJavaでこの数式を評価したところ、私はどこで悩んでいますか?
int x=5,y=3;
x+=y*++x-x/y-y++;
System.out.println("Value = "+x);
私の評価は以下の通りである:
X + = Y * ++ XX/
++のY-Y(X = 5 | Y = 3)x = x +(y * ++ xx/y-y ++)
(x = 5 | y = 3)| ++と - 最高の優先度を持っています。x = x +(y * 6-x/y-3)
(x = 6 | y = 4)| *および/持ち次に高い優先X = X +(4 * 6-(6/4)-3)
(X = 6 | Y = 4)X = X +(24 -1 - 3)
(X = 6 | Y = 4)X = 6 + 20
(X = 6 | Y = 4)ただし、X = 26
、場合私はthを評価する上記のJavaの場合、出力は18になります。何が間違っていましたか?
また、上記のような問題を段階的に分析できるオンラインのプログラムはありますか?もしそうなら、名前をつけることができますか?
表現。あなたも同様にそれらを避ける場合は、より良い開発者になるでしょう。そして、私たちはあなたを罰するためにあなたを追跡する必要はありません:-) – paxdiablo
@paxdiablo私の生徒のための学校の宿題でした..: '( –
あなたがした間違いは、式の間にポストインクリメントを実行していたとき、式が計算されるまで残す必要があります – kamoroso94