Java | 論理演算子を使った「採点付きミニ演習プログラム」

APP Java
スポンサーリンク

では、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点
判定が完了しました。お疲れさまでした!

さらに発展したい人向け課題(任意)

  1. 3教科すべて入力後、「総合点が250点以上なら特待生」に変更してみよう。
  2. 「平均点が60点以上なら合格」でもいいように、|| と組み合わせて条件を改良してみよう。
  3. Scanner で入力する部分を for 文で繰り返して短く書けるか挑戦!
タイトルとURLをコピーしました