本文へスキップ
T2R tech2rich.com
プログラミング 📚 Java入門 第3回 #Java #入門 #プログラミング初心者 #条件分岐

【Java入門 第3回】条件分岐 — if 文と switch 文の使い方

プログラムで「もし◯◯なら××する」を実現する、if 文 / else / else if / switch 文の使い方と比較演算子・論理演算子について、初心者向けに具体例で学びます。

📅 公開: 2026.05.03 ⏱ 読了 約6分 ✍ 管理人

これまでの記事で、変数とデータ型を学びました。 今回はいよいよ、プログラムが 「考える」 最初のステップ — 条件分岐 に進みます。

「もしテストの点数が80点以上なら『合格』、そうでなければ『不合格』と表示する」のような処理を、Java でどう書くかを学んでいきましょう。

条件分岐とは

条件分岐(じょうけん ぶんき) とは、プログラムの 流れを条件によって変えること です。 日常生活の意思決定と同じ仕組みで、

もし 雨が降っていたら、そうしたら 傘を持っていく。そうでなければ 持っていかない」

これをプログラムで表現するのが、ifswitch です。

比較演算子 — 「等しい」「より大きい」を表す

条件を書くには、まず 比較演算子 を覚える必要があります。

演算子意味結果
==等しい5 == 5true
!=等しくない5 != 3true
>より大きい5 > 3true
<より小さい5 < 3false
>=以上5 >= 5true
<=以下5 <= 3false

代入の = は1つ、比較の == は2つ! ここを間違えるのが初心者あるあるです。

if 文 — 「もし◯◯なら」

もっとも基本的な条件分岐が if です。

基本形

if (条件式) {
    // 条件が true のときに実行される処理
}

例: 点数が 80 以上なら「合格」と表示

public class IfDemo {
    public static void main(String[] args) {
        int score = 85;

        if (score >= 80) {
            System.out.println("合格!");
        }
    }
}

実行結果:

合格!

score70 にして実行すると、何も表示されません。条件が false なので if の中身がスキップされるためです。

if-else — 「そうでなければ」も書く

「条件に当てはまらない場合」も処理したいときは、else を使います。

public class IfElseDemo {
    public static void main(String[] args) {
        int score = 70;

        if (score >= 80) {
            System.out.println("合格!");
        } else {
            System.out.println("不合格...");
        }
    }
}

実行結果:

不合格...

if-else if-else — 3 つ以上の分岐

3 つ以上の条件を扱いたい場合は、else if をつなげます。

public class GradeDemo {
    public static void main(String[] args) {
        int score = 75;

        if (score >= 90) {
            System.out.println("評価: A");
        } else if (score >= 70) {
            System.out.println("評価: B");
        } else if (score >= 50) {
            System.out.println("評価: C");
        } else {
            System.out.println("評価: D");
        }
    }
}

実行結果(score = 75 の場合):

評価: B

💡 上から順番にチェックされ、最初に true になった枝だけ が実行されます。

論理演算子 — 複数の条件を組み合わせる

A かつ B」「A または B」のように、複数の条件を組み合わせるには 論理演算子 を使います。

演算子意味
&&かつ (AND)age >= 18 && age < 65
||または (OR)day == "土" || day == "日"
!ではない (NOT)!isHoliday

例: 年齢が18歳以上65歳未満なら「現役世代」

int age = 30;

if (age >= 18 && age < 65) {
    System.out.println("現役世代");
} else {
    System.out.println("現役世代ではない");
}

例: 土日なら「休日」

String day = "土";

if (day.equals("土") || day.equals("日")) {
    System.out.println("休日!");
} else {
    System.out.println("平日");
}

文字列の比較には == ではなく .equals() を使います。Java では文字列の == は別の意味になり、思った通りに動かないことがあります。

switch 文 — 値ごとに分岐したいとき

「変数の値が A なら〜、B なら〜、C なら〜」のような 値による多分岐 には、switch 文を使うと読みやすくなります。

public class SwitchDemo {
    public static void main(String[] args) {
        String day = "月";

        switch (day) {
            case "月":
                System.out.println("週の始まりです!");
                break;
            case "金":
                System.out.println("もうすぐ週末!");
                break;
            case "土":
            case "日":
                System.out.println("お休み!");
                break;
            default:
                System.out.println("普通の平日");
                break;
        }
    }
}

実行結果(day = “月” の場合):

週の始まりです!

switch を使うときのポイント

switch 式(Java 14 以降の新しい書き方)

Java 14 以降では、switch という新しい書き方が使えます。 こちらのほうがシンプルで安全(break 不要、フォールスルーなし)なので、今後はこちらが主流です。

String day = "月";

String message = switch (day) {
    case "月" -> "週の始まりです!";
    case "金" -> "もうすぐ週末!";
    case "土", "日" -> "お休み!";
    default -> "普通の平日";
};

System.out.println(message);

矢印 (->) を使い、結果を変数に代入できる点がポイントです。

ネスト(入れ子) — if の中に if を入れる

if 文の中に、さらに if 文を書くこともできます。これを ネスト(入れ子構造) と呼びます。

int age = 30;
boolean hasLicense = true;

if (age >= 18) {
    if (hasLicense) {
        System.out.println("運転できます");
    } else {
        System.out.println("免許が必要です");
    }
} else {
    System.out.println("18歳未満は運転できません");
}

💡 ネストが3階層以上になると読みにくくなるので、&& で1つの if にまとめるか、メソッドに分割する(後の連載で解説)のが望ましいです。

練習問題

以下のプログラムを書いてみましょう。

ある人の テストの点数(0〜100) を変数 score に格納し、以下の評価をコンソールに表示するプログラム。

  • 90 点以上 → 「優」
  • 70 点以上 → 「良」
  • 50 点以上 → 「可」
  • それ未満 → 「不可」

ただし、点数が 0 未満または 100 を超えていたら、「無効な点数です」と表示する。

解答例

public class Grade {
    public static void main(String[] args) {
        int score = 75;

        if (score < 0 || score > 100) {
            System.out.println("無効な点数です");
        } else if (score >= 90) {
            System.out.println("優");
        } else if (score >= 70) {
            System.out.println("良");
        } else if (score >= 50) {
            System.out.println("可");
        } else {
            System.out.println("不可");
        }
    }
}

実行結果(score = 75 の場合):

score の値を変えながら実行して、すべての分岐が正しく動くか確認してみましょう。

まとめ

第3回では、以下を学びました。

次回は、「同じ処理を何度も繰り返す」 仕組みである for 文・while を学びます。 プログラミングの恩恵を一番感じられるテーマですので、お楽しみに!

関連の技術記事