Java | インクリメント/デクリメント理解度チェックテスト

APP Java
スポンサーリンク

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

使い方

  1. ファイル名を IncrementDecrementQuiz.java にして保存。
  2. コマンドプロンプト or ターミナルで javac IncrementDecrementQuiz.java java IncrementDecrementQuiz と実行します。
  3. 問題ごとに ad を入力して Enter。

学習効果

このテストで得られる理解:

  • 前置(++x)/後置(x++)の動作タイミング
  • 評価順序(左から右)
  • ループでのインクリメントの使われ方
  • よくある落とし穴(x = x++ のような書き方)

See the Pen Java Increment and Decrement Operators Test by MONO365 -Color your days- (@monoqlo365) on CodePen.

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