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」。
  • 使う値 = 2
  • その後 a = 3 に増える。

2つ目の a++

  • 今の a = 3
  • 後置なので「3を使ってから +1」。
  • 使う値 = 3
  • その後 a = 4 に増える。

3つ目の ++a

  • 今の a = 4
  • 前置インクリメントなので「先に +1 してから使う」。
  • a = 5 に増える
  • 使う値 = 5

まとめて計算

b = (2) + (3) + (5) = 10

最終結果

a = 5
b = 10

ポイント整理

  • 後置(a++) → 値を使ってから増える
  • 前置(++a) → 先に増えてから値を使う
  • 複数並べるときは「どのタイミングで増えるか」を一歩ずつ追うのがコツ。

💡 初心者向けアドバイス:
こういう「インクリメントを式に詰め込む」書き方は、バグの温床になりやすいので、実務では避けるのが鉄則です。

タイトルとURLをコピーしました