Javaのelse ifとは?複数条件を上から順番に判定する考え方

最終更新日

Schoo Java入門 初級【2026年版】

本記事は、Schooの「Java入門 初級【2026年版】」第3回「条件分岐・論理演算子」を学んだあとに、複数の条件を上から順番に判定する考え方を整理したい方向けのステップアップ学習記事です。

ただし、Schooを受講していない方でも、Javaのif文を学び始めたばかりであれば読み進められる内容にしています。初学者が迷いやすい、条件を書く順番と、複数のif文との違いを手を動かしながら確認します。

Schoo コースページ:Java入門 初級【2026年版】

else ifは複数の候補から1つを選ぶ

else ifは、最初のif文の条件を満たさなかったときに、次の条件を調べるための書き方です。条件は上から順番に判定され、最初にtrueになった処理だけが実行されます。

例えば、点数をA・B・Cのいずれか1つに分ける処理を考えます。85点は「80点以上」と「70点以上」の両方に当てはまりますが、成績として表示したいのはBだけです。そこで、基準の高い条件から順番に並べます。

if・else if・elseの基本形

最初はifで始めます。追加の条件をelse ifでつなぎ、どの条件も満たさなかった場合の処理を最後のelseに書きます。

ファイル名: ScoreCheck.java

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

        if (score >= 90) {
            System.out.println("Aランク");
        } else if (score >= 80) {
            System.out.println("Bランク");
        } else if (score >= 70) {
            System.out.println("Cランク");
        } else {
            System.out.println("再挑戦");
        }
    }
}

実行結果

Bランク

85は90以上ではないため、最初の条件はfalseです。次の「80以上」はtrueなのでBランクを表示し、それより下の条件は判定しません。

上から順番に判定する流れ

  1. score >= 90を判定する
  2. falseなら次のscore >= 80へ進む
  3. trueになった処理を実行する
  4. 残りのelse ifelseは調べずに分岐を抜ける

else ifは、すべての条件を毎回調べる仕組みではありません。「まだどの条件にも当てはまっていない場合だけ次へ進む」と考えると、処理の流れを追いやすくなります。

点数を変えて判定順序を確かめる

scoreを変更すると、各条件をどの順番で調べ、どこで判定を終えるかがすぐに更新されます。

条件は基準の高い順に並べる

「90点以上」「80点以上」「70点以上」のように条件の範囲が重なる場合は、より限定された高い基準から並べます。順番を逆にすると、意図した判定に到達できません。

間違った順番の例: ScoreCheck.java

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

        if (score >= 70) {
            System.out.println("Cランク");
        } else if (score >= 80) {
            System.out.println("Bランク");
        } else if (score >= 90) {
            System.out.println("Aランク");
        }
    }
}

実行結果

Cランク

95は最初の「70点以上」を満たします。そこでCランクを表示して分岐を抜けるため、その下にあるAランクの条件まで進みません。Javaが点数に最も合う条件を探してくれるわけではなく、プログラムに書かれた順番で判定します。

複数のif文との違い

else ifでつながった条件は、最初に成立した1つだけを実行します。一方、独立したif文は、それぞれを別々に判定します。

ファイル名: ScoreCheck.java

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

        if (score >= 90) {
            System.out.println("Aランク");
        }
        if (score >= 80) {
            System.out.println("80点以上");
        }
        if (score >= 70) {
            System.out.println("70点以上");
        }
    }
}

実行結果

Aランク
80点以上
70点以上

複数の条件をすべて確認したい場合は独立したif文を使えます。成績のように候補から1つだけを選びたい場合は、ifelse ifをつなげます。

else ifでよくある間違い

条件の広いものを先に書く

「70点以上」を先に書くと、80点や90点もそこで成立します。範囲が重なる条件では、どの条件が先に成立するかを確認します。

elseに条件を書く

elseには条件を書きません。条件を追加したい場合はelse if (条件)と書き、どの条件にも当てはまらない場合だけをelseで受け取ります。

すべての条件が判定されると思う

最初にtrueになったあとの条件は判定されません。複数の処理を実行したいのか、候補から1つを選びたいのかを先に決めましょう。

自分で試す練習

  • 最初のコードのscoreを90、89、80、79、70、69に変える
  • 条件を低い順番に並べ、90点以上を入力したときの結果を確認する
  • else ifを独立したif文に変え、表示される行数を比べる

確認問題

  1. 購入金額priceが10000以上なら「10%割引」、5000以上なら「5%割引」、それ以外は「割引なし」と表示してください。条件を適切な順番で書きましょう。
  2. scoreが95のとき、「60点以上」「80点以上」「90点以上」の順に条件を書くと何が表示されますか。理由と正しい順番も考えてください。
  3. 気温temperatureが30以上なら「暑い」、25以上なら「暖かい」、それ以外は「過ごしやすい」と表示してください。

演習後の確認:こちらのページを使って、自分で考えた条件の順番を見直せます。先にコードと理由を書いてから確認してください。

あわせて読みたい関連記事

まとめ

else ifを使うと、複数の条件を上から順番に判定し、最初にtrueになった処理だけを実行できます。範囲が重なる場合は、より限定された高い基準から条件を並べます。

候補から1つだけを選ぶならelse if、複数の条件をそれぞれ確認するなら独立したif文です。条件式だけでなく、どの順番で判定されるかまで追うことが大切です。

シェアする