Java | インクリメント/デクリメントのよくあるバグパターン

Java Java
スポンサーリンク

では「前置が連続するパターン」を丁寧に追ってみましょう。

int a = 2;
int b = ++a + ++a + a++;
System.out.println("a = " + a);
System.out.println("b = " + b);
Java

ステップごとの解説

初期値

a = 2

1つ目の ++a

  • 前置インクリメント
  • 先に +1 → a = 3
  • 使う値 = 3

2つ目の ++a

  • 今の a = 3
  • 前置なので、先に +1 → a = 4
  • 使う値 = 4

3つ目の a++

  • 今の a = 4
  • 後置インクリメント
  • 使う値 = 4
  • その後 a = 5

計算まとめ

b = (3) + (4) + (4) = 11

最終結果

a = 5
b = 11

ポイント整理

  • 前置が続くと「どんどん増えてから使う」ので、値が階段状に上がっていく。
  • 後置が最後に来ると「今の値を使ってから増える」ので、最終的に a がさらに1つ進む。

💡 まとめると:

  • a++ + a++ + ++a → a=5, b=10
  • a++ + ++a + a++ → a=5, b=10
  • ++a + ++a + a++ → a=5, b=11
タイトルとURLをコピーしました