コース一覧
    Java入門:条件分岐
    else if で複数分岐

    Java入門:条件分岐

    条件分岐の書き方を学び、入力や条件に応じて処理を選べるプログラムを作れるようにします。

    1
    条件分岐
    01. if 文の基本5分
    02. if-else 文5分
    03. else if で複数分岐5分
    04. 成績判定プログラム12分
    05. うるう年を判定する5分
    06. switch 文5分
    07. 三項演算子5分
    08. じゃんけんの勝敗判定15分
    09. FizzBuzz の判定部分5分
    10. 第 3 章 まとめクイズ5分

    else if で複数分岐

    3 つ目の道が置けない

    if と else では道が 2 本しかありません。気温から「猛暑日」「夏日」「それ以外」の 3 つを出し分けたいとき、2 本では真ん中が置けず、else の中にもう 1 つ if を入れて階層を深くすることになります。

    else if を使うと、道を横に並べたまま増やせます。

    Java

    int temp = 27;
    
    if (temp >= 30) {
        System.out.println("猛暑日です");
    } else if (temp >= 25) {
        System.out.println("夏日です");
    } else {
        System.out.println("過ごしやすい一日です");
    }

    上から順に条件を見ていき、最初に true になったブロックだけを実行して、残りは見ずに抜けます。temp が 27 のときは 1 つ目が false、2 つ目が true なので「夏日です」だけが出ます。3 つ目には到達しません。else if はいくつでも並べられます。

    上に置いたゆるい条件が、下を全部殺す

    「最初に当たったところで止まる」という性質は、並べる順番を間違えると牙をむきます。

    Java

    if (temp >= 25) {
        System.out.println("夏日です");
    } else if (temp >= 30) {
        System.out.println("猛暑日です");
    }

    これだと 35 度でも「夏日です」と出ます。temp >= 25 が先に true になり、その下は二度と評価されないからです。範囲で分けるときは、厳しい条件を上に、ゆるい条件を下に並べます。

    解説

    書き終えたら、それぞれの条件に実際に届く値があるかを、上から 1 つずつ数字を当てはめて確かめます。一度も通らないブロックがあれば、順番が間違っています。

    else を省くと、返す値が足りないと怒られる

    else は省略できます。どれにも当てはまらないときに何もしないなら、if と else if だけで構いません。

    Java

    if (temp >= 35) {
        System.out.println("外出をひかえましょう");
    }

    ただし値を返すメソッドでは事情が変わります。return を分岐の中だけに書いて else を省くと、どの条件にも当てはまらなかった経路で返す値が無くなり、missing return statement というコンパイルエラーになります。最後を else で閉じておけば、Java は「必ずどこかに到達する」と判断できます。書く側にとっても、最後の else は「これで全部の場合を尽くした」という宣言になります。

    なお else if は else と if の 2 単語です。あいだの半角スペースを詰めて elseif と書くとエラーになります。

    要件

    1. クラス名は Solution、メソッド名は signOf、引数は int n 1 つにすること
    2. 戻り値の型は String で、"positive" / "zero" / "negative" のいずれかを返すこと
    3. if / else if / else を組み合わせて 3 分岐で書くこと (ネストや switch ではなく else if 連鎖で)

    ヒント

    上から順に評価されます。`n > 0` のような最も判定したい条件を `if` に置き、続けて `else if (n == 0)` を書くと素直です

    `else if` は半角スペースをはさんで 2 単語で書きます。`elseif` と書くとコンパイルエラーになります

    最後の `else` を忘れると `missing return statement` エラーが出ます。`n < 0` を明示するか、`else` でガッチリ閉じてください

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

    関連レッスン

    • 成績判定プログラム

      if文を使って、入力された点数に応じて成績を判定するプログラムを実装します。

    • うるう年を判定する

      `&&` と `||` を組み合わせて、実用的な条件「うるう年かどうか」を 1 行で判定するメソッドを書いてみよう。

    • switch 文

      値による多分岐を簡潔に書く switch 文を学び、case と break、default の使い方をマスターしよう。

    • 三項演算子

      Java の三項演算子 `条件 ? 真の値 : 偽の値` を使って、if-else を 1 行で書けるようになろう。

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • 階層ネットワークを役割ごとに積み重ねた構造
    • ロック「他の人触らないでね」と DB に予約する
    • 評価出力品質を数値化して継続改善する活動
    • メソッドクラスに属する関数
    • コンパイルソースをバイトコードへ変換する処理
    • 判断YES/NO 分岐を表す菱形
    • クラスデータと振る舞いを束ねる単位
    • 引数位置引数=順番で渡す。
    main.java
    エディタを読み込んでいます

    メモ

    else if で複数分岐

    ⌘S で保存