では例題を一緒に手で追ってみましょう。
問題はこれです。
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) → 先に増えてから値を使う
- 複数並べるときは「どのタイミングで増えるか」を一歩ずつ追うのがコツ。
💡 初心者向けアドバイス:
こういう「インクリメントを式に詰め込む」書き方は、バグの温床になりやすいので、実務では避けるのが鉄則です。
