では次に、算術演算子を「自分で答えを入力 → 正解・不正解を判定」できる インタラクティブ練習プログラム(クイズ形式) を作ります。
初心者でもそのまま動かせる形で、丁寧なコメント付きです。
ファイル名: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 | 正解数をカウントして最後に表示 |
実行方法
- 上記コードを
ArithmeticQuiz.javaで保存 - コマンドで:
javac ArithmeticQuiz.java java ArithmeticQuiz - 表示された質問に数字を入力して Enter
- 結果と解説が順番に表示されます
発展版の提案
希望があれば、次のようなバリエーションも作成できます:
- ✅ 問題をランダム生成(毎回違う数で出題)
- ✅ タイマー付き(制限時間内に答える)
- ✅ 得点をスコアファイルに保存して成績管理

