重複の可能性:
Java でのデクリメント
私はこの質問、 Decrement in Javaを見ていましたが、好奇心をそそられました。後/前のインクリメント/デクリメントがどのように機能するかは理解していますが、その特定の状況でのように機能する理由を知りたいです。
例えば、
int x = 5;
x--;
明らかに x を 4 に設定します。
x = x--;
x はまだ 5 になります (参照されている質問の投稿者によって発見されたように)。ポストデクリメントの私の理解から、それはそれを変更する前に値を返します。ですから、私が期待しているのは、それx = 5
が最初に起こるということです。(上記と一貫性を保ちます)。次に、x がデクリメントされるので、私の考えでx--;
は実行されます。上記では、x を明確に 4 に設定します。
つまり、そうです、実行するだけで十分簡単ですx--;
が、Java の post decrement がこのように機能する理由を理解したいと思います。
以下のコードを試してみたところ、期待どおりに機能しました。
int x = 5;
int y = x--;
y
5 に設定され、x
適切にデクリメントされました。なぜ同じことが起こらないのx = x--;
ですか?