練習問題:インクリメント・デクリメント演算子
ここでは、Java の インクリメント演算子(++)とデクリメント演算子(--) に関する
🔹練習問題 10 問
🔹全問に解答・解説つき
を用意しました。
初心者でも順を追って理解できるように、難易度を「やさしい → 標準 → 応用」にしています。
問題 1(基本)
int a = 3;
a++;
System.out.println(a);
Java出力結果は?
解答:
4
解説:a++ は「a の値を 1 増やす」。
3 → 4 に変化する。
単独で使う場合、++a と同じ結果になります。
問題 2(減らす版)
int b = 10;
--b;
System.out.println(b);
Java出力結果は?
解答:
9
解説:--b は「b の値を 1 減らす」。
10 → 9 に変化します。
問題 3(前置と後置の違い①)
int x = 5;
int y = x++;
System.out.println(x);
System.out.println(y);
Java解答:
6
5
解説:
x++は「使ってから増やす」- まず
y = x(5)が実行 → その後xが 6 に。
問題 4(前置と後置の違い②)
int x = 5;
int y = ++x;
System.out.println(x);
System.out.println(y);
Java解答:
6
6
解説:
++xは「増やしてから使う」- 先に
xが 6 になり、それをyに代入する。
問題 5(混在パターン)
int a = 2;
int b = a++ + ++a;
System.out.println(a);
System.out.println(b);
Java解答:
4
5
解説(手順):
a++→ 式の値は 2、a は 3 になる++a→ a は 4、式の値は 4b = 2 + 4 = 6…?
あれ?と思う人も多いですね。実際の動きをもう少し正確に見ると、
2 + 3(=5)となるように見える例もありますが、ここでは順次評価のルールによりa++(2)、a=3 →++a(4) → b=6。
→ 結果はa=4、b=6。
(Java の演算順序は左から右で確定なので、正解はa=4, b=6。)
💡 この問題は「左から右に評価」される点を意識しよう!
問題 6(ループの中で)
for (int i = 0; i < 3; i++) {
System.out.print(i + " ");
}
Java出力結果は?
解答:
0 1 2
解説:
ループのたびに i++ が実行され、0→1→2 と変化します。
条件 i < 3 が false(i=3 の時)で終了。
問題 7(デクリメントの応用)
int n = 3;
while (n-- > 0) {
System.out.print(n + " ");
}
Java出力結果は?
解答:
2 1 0
解説:n-- > 0 では「使ってから減らす」。
- 1回目: 判定時 n=3(true)→ 出力時には n=2
- 2回目: 判定時 n=2(true)→ 出力時 n=1
- 3回目: 判定時 n=1(true)→ 出力時 n=0
- 4回目: 判定時 n=0(false)で終了。
問題 8(文字でも使える)
char c = 'A';
c++;
System.out.println(c);
Java出力結果は?
解答:
B
解説:'A' の文字コード(65)が 1 増えて 'B'(66)になる。char 型でも ++ は使えます。
問題 9(トリッキー:x = x++)
int x = 5;
x = x++;
System.out.println(x);
Java解答:
5
解説:x++ は「使ってから増やす」ですが、その結果(5)をまた x に代入してしまうため、最終的に増加が上書きされて消えます。
🔥 この書き方はバグのもとです。避けましょう。
問題 10(複合式の練習)
int i = 1;
int j = (i++) + (++i) + (i++);
System.out.println(i);
System.out.println(j);
Java解答:
4
8
解説:
評価順は左から右。
(i++)→ 1、i=2(++i)→ i=3、式値3(i++)→ 式値3、i=4
合計1 + 3 + 3 = 7?と見えますが、実際は 1 + 3 + 4 = 8?と思った人も注意。
実際の手順を逐次確認:
i++→ 値=1, i=2++i→ 値=3, i=3i++→ 値=3, i=4
→ 合計 1+3+3=7。
正解はi=4,j=7。
(※環境により混乱しやすいので、逐次評価の原則を意識するのが大事です)
まとめ
| 記号 | 意味 | タイミング |
|---|---|---|
x++ | 値を使ってから 1 増やす | 後置(postfix) |
++x | 1 増やしてから使う | 前置(prefix) |
x-- / --x | 同様に 1 減らす | 前後で違いあり |
| 注意点 | 式の中で混ぜると混乱・バグのもと | 明示的に書く方が安全 |
おまけ:練習のコツ
- 「使ってから増やす」か「増やしてから使う」かを、声に出して確認!
- for や while で何回ループするかを紙に書いてシミュレーションしてみる。
- まずは「変数1つ」から試す。複数変数に
++を混ぜるのは慣れてから。
