では、Java の論理演算子を使った「採点付きミニ演習プログラム」を作りましょう。
このプログラムは、ユーザーが入力した点数をもとに「合格/不合格」や「特待生」などを判定します。
論理演算子 &&, ||, ! を全部使って練習できる内容になっています。
プログラムの目的
ユーザーに「数学」「英語」「理科」の3教科の点数を入力してもらい、次のように判定します:
| 判定 | 条件 | 使用演算子 |
|---|---|---|
| 🌟 特待生 | 3教科すべて 80点以上 | && |
| ✅ 合格 | いずれか2教科以上が 60点以上 | ` |
| ❌ 不合格 | それ以外 | ! で条件の否定 |
💻 完成コード(コメント付き)
import java.util.Scanner;
public class LogicQuiz {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("=== 成績判定プログラム ===");
// 各教科の点数を入力
System.out.print("数学の点数を入力してください: ");
int math = sc.nextInt();
System.out.print("英語の点数を入力してください: ");
int english = sc.nextInt();
System.out.print("理科の点数を入力してください: ");
int science = sc.nextInt();
System.out.println("------------------------------");
// 特待生条件: 全て80点以上
if (math >= 80 && english >= 80 && science >= 80) {
System.out.println("🌟 特待生です!すばらしい成績です。");
}
// 合格条件: 2教科以上が60点以上
else if ((math >= 60 && english >= 60) ||
(math >= 60 && science >= 60) ||
(english >= 60 && science >= 60)) {
System.out.println("✅ 合格です。よくがんばりました!");
}
// それ以外は不合格
else {
System.out.println("❌ 不合格です。もう少しがんばりましょう。");
}
// BONUS: 論理否定(!)を使った判定
boolean failed = !(math >= 60 || english >= 60 || science >= 60);
if (failed) {
System.out.println("(補足)全科目60点未満です。再試験の対象になります。");
}
System.out.println("------------------------------");
// 採点表示
int average = (math + english + science) / 3;
System.out.println("平均点: " + average + "点");
// 合否メッセージ
System.out.println("判定が完了しました。お疲れさまでした!");
}
}
Java解説
&&(AND)で「全ての条件が真」
if (math >= 80 && english >= 80 && science >= 80)
Java→ 3教科すべてが80点以上のときだけ特待生。
||(OR)で「どれかが真」
if ((math >= 60 && english >= 60) ||
(math >= 60 && science >= 60) ||
(english >= 60 && science >= 60))
Java→ 2教科以上が合格点なら「どれかの組み合わせ」が真になる。
!(NOT)で「逆転」
boolean failed = !(math >= 60 || english >= 60 || science >= 60);
Java→ 「1教科でも60点以上」ではない、つまり全教科60点未満のとき failed = true。
実行例
例1:すべて80点以上
数学: 85
英語: 90
理科: 88
------------------------------
🌟 特待生です!すばらしい成績です。
平均点: 87点
判定が完了しました。お疲れさまでした!
例2:2教科が60点以上
数学: 65
英語: 72
理科: 55
------------------------------
✅ 合格です。よくがんばりました!
平均点: 64点
判定が完了しました。お疲れさまでした!
例3:全教科が60点未満
数学: 45
英語: 58
理科: 50
------------------------------
❌ 不合格です。もう少しがんばりましょう。
(補足)全科目60点未満です。再試験の対象になります。
平均点: 51点
判定が完了しました。お疲れさまでした!
さらに発展したい人向け課題(任意)
- 3教科すべて入力後、「総合点が250点以上なら特待生」に変更してみよう。
- 「平均点が60点以上なら合格」でもいいように、
||と組み合わせて条件を改良してみよう。 Scannerで入力する部分をfor文で繰り返して短く書けるか挑戦!


