Java理解度チェックテスト(インクリメント/デクリメント)
ではこの「インクリメント/デクリメント理解度チェックテスト」を、
Java コンソールアプリ形式でつくりましょう。
初心者でもそのまま コピペして動かせる完全版コード + 丁寧な説明付き です。
import java.util.Scanner;
public class IncrementDecrementQuiz {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = 0;
String answer;
System.out.println("===================================");
System.out.println(" インクリメント/デクリメント理解度テスト");
System.out.println("===================================");
System.out.println("各問題の出力結果を予想して、a~d の中から選んでください。");
System.out.println("(入力例:a)\n");
// -------------------- Q1 --------------------
System.out.println("【Q1】次のコードの出力は?");
System.out.println("int a = 3;");
System.out.println("a++;");
System.out.println("System.out.println(a);");
System.out.println("a) 2 b) 3 c) 4 d) 5");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("c")) { score++; System.out.println("✅ 正解! a++ で 3→4 になります。\n"); }
else System.out.println("❌ 残念。正解は c) 4 です。\n");
// -------------------- Q2 --------------------
System.out.println("【Q2】次のコードの出力は?");
System.out.println("int x = 5;");
System.out.println("int y = x++;");
System.out.println("System.out.println(x + \",\" + y);");
System.out.println("a) 5,5 b) 6,6 c) 5,6 d) 6,5");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("d")) { score++; System.out.println("✅ 正解! x++ は使ってから増やす → y=5, x=6。\n"); }
else System.out.println("❌ 正解は d) 6,5 です。\n");
// -------------------- Q3 --------------------
System.out.println("【Q3】次のコードの出力は?");
System.out.println("int x = 5;");
System.out.println("int y = ++x;");
System.out.println("System.out.println(x + \",\" + y);");
System.out.println("a) 5,5 b) 6,6 c) 5,6 d) 6,5");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("b")) { score++; System.out.println("✅ 正解! ++x は増やしてから使う → x=6, y=6。\n"); }
else System.out.println("❌ 正解は b) 6,6 です。\n");
// -------------------- Q4 --------------------
System.out.println("【Q4】次のコードの出力は?");
System.out.println("int i = 1;");
System.out.println("int j = (i++) + (++i) + (i++);");
System.out.println("System.out.println(i + \",\" + j);");
System.out.println("a) 4,7 b) 3,6 c) 4,6 d) 4,8");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("a")) { score++; System.out.println("✅ 正解! 左から順に評価 → i=4, j=7。\n"); }
else System.out.println("❌ 正解は a) 4,7 です。\n");
// -------------------- Q5 --------------------
System.out.println("【Q5】次のコードの出力は?");
System.out.println("int n = 3;");
System.out.println("while (n-- > 0) { System.out.print(n + \" \"); }");
System.out.println("\na) 3 2 1 b) 2 1 0 c) 1 0 -1 d) 0 1 2");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("b")) { score++; System.out.println("✅ 正解! n-- は使ってから減らす → 2 1 0。\n"); }
else System.out.println("❌ 正解は b) 2 1 0 です。\n");
// -------------------- Q6 --------------------
System.out.println("【Q6】次のコードの出力は?");
System.out.println("char c = 'A';");
System.out.println("c++;");
System.out.println("System.out.println(c);");
System.out.println("a) A b) B c) C d) エラー");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("b")) { score++; System.out.println("✅ 正解! 'A' の次の文字は 'B' です。\n"); }
else System.out.println("❌ 正解は b) B です。\n");
// -------------------- Q7 --------------------
System.out.println("【Q7】次のコードの出力は?");
System.out.println("int x = 5;");
System.out.println("x = x++;");
System.out.println("System.out.println(x);");
System.out.println("a) 4 b) 5 c) 6 d) エラー");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("b")) { score++; System.out.println("✅ 正解! x++ の結果を自分に代入 → 増加が上書きされる。\n"); }
else System.out.println("❌ 正解は b) 5 です。\n");
// -------------------- Q8 --------------------
System.out.println("【Q8】for文の出力は?");
System.out.println("for (int i = 0; i < 3; ++i) { System.out.print(i + \" \"); }");
System.out.println("a) 0 1 2 b) 1 2 3 c) 0 1 2 3 d) 1 2");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("a")) { score++; System.out.println("✅ 正解! 0,1,2 が順に出力されます。\n"); }
else System.out.println("❌ 正解は a) 0 1 2 です。\n");
// -------------------- Q9 --------------------
System.out.println("【Q9】次のコードの出力は?");
System.out.println("int a = 2;");
System.out.println("int b = a++ + ++a;");
System.out.println("System.out.println(a + \",\" + b);");
System.out.println("a) 3,4 b) 4,5 c) 4,6 d) 3,5");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("c")) { score++; System.out.println("✅ 正解! 左から順に a=4, b=6 になります。\n"); }
else System.out.println("❌ 正解は c) 4,6 です。\n");
// -------------------- Q10 --------------------
System.out.println("【Q10】次のコードの出力は?");
System.out.println("int x = 0;");
System.out.println("System.out.println(x++ + ++x + x);");
System.out.println("a) 2 b) 3 c) 4 d) 5");
System.out.print("答え: ");
answer = sc.nextLine();
if (answer.equalsIgnoreCase("b")) { score++; System.out.println("✅ 正解! (0)+(2)+(2)=4?ではなく左から順に 0+1+2=3。\n"); }
else System.out.println("❌ 正解は b) 3 です。\n");
// 結果発表
System.out.println("===================================");
System.out.println("あなたの得点は " + score + " / 10 点です!");
if (score == 10) System.out.println("🎉 完璧!前置・後置の違いもバッチリ理解できています。");
else if (score >= 7) System.out.println("👍 いい感じ!ループと代入の違いをもう少し練習しましょう。");
else System.out.println("💪 基礎をもう一度復習してみましょう。'++x' と 'x++' の違いを意識してみてください。");
System.out.println("===================================");
}
}
Java使い方
- ファイル名を
IncrementDecrementQuiz.javaにして保存。 - コマンドプロンプト or ターミナルで
javac IncrementDecrementQuiz.java java IncrementDecrementQuizと実行します。 - 問題ごとに
a〜dを入力して Enter。
学習効果
このテストで得られる理解:
- 前置(
++x)/後置(x++)の動作タイミング - 評価順序(左から右)
- ループでのインクリメントの使われ方
- よくある落とし穴(
x = x++のような書き方)
See the Pen Java Increment and Decrement Operators Test by MONO365 -Color your days- (@monoqlo365) on CodePen.


