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++

  • 後置インクリメント
  • 使う値 = 2
  • その後 a = 3

2つ目の ++a

  • 今の a = 3
  • 前置インクリメントなので、先に +1 → a = 4
  • 使う値 = 4

3つ目の a++

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

計算まとめ

b = (2) + (4) + (4) = 10

最終結果

a = 5
b = 10

ポイント整理

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

💡 まとめると:

  • a++ + a++ + ++a → b=10, a=5
  • a++ + ++a + a++ → b=10, a=5

一見違うように見えても、順番を丁寧に追えば結果が理解できます。

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