Java | 算術演算子

Java Java
スポンサーリンク

では次に、算術演算子を「自分で答えを入力 → 正解・不正解を判定」できる インタラクティブ練習プログラム(クイズ形式) を作ります。
初心者でもそのまま動かせる形で、丁寧なコメント付きです。


ファイル名:ArithmeticQuiz.java

// ArithmeticQuiz.java
// 算術演算子 練習クイズ(初心者向け)
// 標準入力を使って、ユーザーが答えを入力し、正解を判定します。

import java.util.Scanner;

public class ArithmeticQuiz {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("=== 算術演算子クイズ ===");
        System.out.println("計算結果を入力してください!(整数か小数)\n");

        int score = 0; // 正答数カウント

        // --- 問1 ---
        System.out.print("問1: 5 + 3 = ");
        int ans1 = sc.nextInt();
        if (ans1 == 8) {
            System.out.println("✅ 正解! 5 + 3 = 8\n");
            score++;
        } else {
            System.out.println("❌ 不正解。正しい答えは 8 です。\n");
        }

        // --- 問2 ---
        System.out.print("問2: 7 - 2 = ");
        int ans2 = sc.nextInt();
        if (ans2 == 5) {
            System.out.println("✅ 正解! 7 - 2 = 5\n");
            score++;
        } else {
            System.out.println("❌ 不正解。正しい答えは 5 です。\n");
        }

        // --- 問3 ---
        System.out.print("問3: 6 * 3 = ");
        int ans3 = sc.nextInt();
        if (ans3 == 18) {
            System.out.println("✅ 正解! 6 × 3 = 18\n");
            score++;
        } else {
            System.out.println("❌ 不正解。正しい答えは 18 です。\n");
        }

        // --- 問4 ---
        System.out.print("問4: 7 / 2 の結果(整数の割り算)は? = ");
        int ans4 = sc.nextInt();
        if (ans4 == 3) {
            System.out.println("✅ 正解! 7 / 2 は整数なので 3 です(小数切り捨て)\n");
            score++;
        } else {
            System.out.println("❌ 不正解。7 / 2 = 3(小数点以下は切り捨て)です。\n");
        }

        // --- 問5 ---
        System.out.print("問5: 7 % 3 の結果(余り)は? = ");
        int ans5 = sc.nextInt();
        if (ans5 == 1) {
            System.out.println("✅ 正解! 7 ÷ 3 の余りは 1 です。\n");
            score++;
        } else {
            System.out.println("❌ 不正解。7 % 3 = 1 です。\n");
        }

        // --- 問6 ---
        System.out.print("問6: (2 + 3) * 4 = ");
        int ans6 = sc.nextInt();
        if (ans6 == 20) {
            System.out.println("✅ 正解! () が先に計算されるので 5×4 = 20\n");
            score++;
        } else {
            System.out.println("❌ 不正解。正しい答えは 20 です。\n");
        }

        // --- 問7 ---
        System.out.print("問7: 10 / 4.0 = ");
        double ans7 = sc.nextDouble();
        if (Math.abs(ans7 - 2.5) < 0.0001) {
            System.out.println("✅ 正解! 浮動小数点の割り算で結果は 2.5 です。\n");
            score++;
        } else {
            System.out.println("❌ 不正解。正しい答えは 2.5 です。\n");
        }

        // --- 問8 ---
        System.out.print("問8: (double)10 / 4 = ");
        double ans8 = sc.nextDouble();
        if (Math.abs(ans8 - 2.5) < 0.0001) {
            System.out.println("✅ 正解! キャストして double に変換されるので 2.5\n");
            score++;
        } else {
            System.out.println("❌ 不正解。正しい答えは 2.5 です。\n");
        }

        // --- 問9 ---
        System.out.print("問9: -7 % 3 = ");
        int ans9 = sc.nextInt();
        if (ans9 == -1) {
            System.out.println("✅ 正解! 余りの符号は被除数に合わせて -1 です。\n");
            score++;
        } else {
            System.out.println("❌ 不正解。正しい答えは -1 です。\n");
        }

        // --- 問10 ---
        System.out.println("問10: 整数の 1 / 0 を実行したらどうなる?");
        System.out.print("(1: 正常に実行される / 2: エラーが出る)→ ");
        int ans10 = sc.nextInt();
        if (ans10 == 2) {
            System.out.println("✅ 正解! 整数の 0 割りは ArithmeticException が発生します。\n");
            score++;
        } else {
            System.out.println("❌ 不正解。実行時エラー(ArithmeticException)になります。\n");
        }

        // --- 結果表示 ---
        System.out.println("=== 結果発表 ===");
        System.out.println("あなたの正解数: " + score + " / 10");

        if (score == 10) {
            System.out.println("🎉 完璧です!算術演算子マスターですね!");
        } else if (score >= 7) {
            System.out.println("✨ いい調子!あと少しで満点!");
        } else if (score >= 4) {
            System.out.println("🙂 だいぶ理解できています。復習すれば完璧に!");
        } else {
            System.out.println("😅 もう少し練習しましょう。上の解説を見ながら再挑戦してね。");
        }

        sc.close();
    }
}
Java

プログラムのポイント解説

機能内容
Scanner クラスキーボードから入力を受け取る
nextInt() / nextDouble()整数・小数の入力をそれぞれ取得
Math.abs(a - b) < 0.0001小数点誤差を考慮して比較
try-catch はなし0割り問題は説明のみで扱い、安全
score正解数をカウントして最後に表示

実行方法

  1. 上記コードを ArithmeticQuiz.java で保存
  2. コマンドで: javac ArithmeticQuiz.java java ArithmeticQuiz
  3. 表示された質問に数字を入力して Enter
  4. 結果と解説が順番に表示されます

発展版の提案

希望があれば、次のようなバリエーションも作成できます:

  • ✅ 問題をランダム生成(毎回違う数で出題)
  • ✅ タイマー付き(制限時間内に答える)
  • ✅ 得点をスコアファイルに保存して成績管理
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました