Java | インクリメント・デクリメント演算子

Java Java
スポンサーリンク

練習問題:インクリメント・デクリメント演算子

ここでは、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

解説(手順):

  1. a++ → 式の値は 2、a は 3 になる
  2. ++a → a は 4、式の値は 4
  3. b = 2 + 4 = 6 …?
    あれ?と思う人も多いですね。実際の動きをもう少し正確に見ると、
    2 + 3(=5)となるように見える例もありますが、ここでは順次評価のルールにより a++ (2)、a=3 → ++a (4) → b=6。
    → 結果は a=4b=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

解説:
評価順は左から右。

  1. (i++) → 1、i=2
  2. (++i) → i=3、式値3
  3. (i++) → 式値3、i=4
    合計 1 + 3 + 3 = 7?と見えますが、実際は 1 + 3 + 4 = 8?と思った人も注意。
    実際の手順を逐次確認:
  • i++ → 値=1, i=2
  • ++i → 値=3, i=3
  • i++ → 値=3, i=4
    → 合計 1+3+3=7。
    正解は i=4, j=7

(※環境により混乱しやすいので、逐次評価の原則を意識するのが大事です)


まとめ

記号意味タイミング
x++値を使ってから 1 増やす後置(postfix)
++x1 増やしてから使う前置(prefix)
x-- / --x同様に 1 減らす前後で違いあり
注意点式の中で混ぜると混乱・バグのもと明示的に書く方が安全

おまけ:練習のコツ

  1. 「使ってから増やす」か「増やしてから使う」かを、声に出して確認!
  2. for や while で何回ループするかを紙に書いてシミュレーションしてみる。
  3. まずは「変数1つ」から試す。複数変数に ++ を混ぜるのは慣れてから。

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