本文へスキップ
BecomeCoder

Java文法コース · 第4章 制御構文 ― 処理の流れを分岐・繰り返す · レッスン14

if / else ― 条件で処理を分ける

ブラウザで完結

導入

「点数が90点以上ならA、70点以上ならB…」のように、条件によって処理を変えたいことはよくあります。それを実現するのが if 文です。

説明

if (条件) { ... } は、条件が true のときだけ { } の中を実行します。else if で条件を追加し、else で「それ以外」を受けられます。

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

        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");
        }
    }
}
  • if (score >= 90) … 条件が true ならこのブロックを実行し、それ以降の else ifelse評価すらされずスキップされます。
  • else if は上から順に評価され、最初に条件が成立したところで処理が実行されて終わります。score = 72 のとき、score >= 90false なので次へ、score >= 70true なのでここで "B" が表示され、以降は見られません。
  • else はどの条件にも当てはまらなかったときの受け皿です。

やってみよう

下のエディタで score の値を色々変えて(956030 など)、AD の表示がどう変わるか確かめましょう。

演習

int temperature = 32; を用意し、30以上なら "真夏日"、25以上なら "夏日"、それ以外なら "普通の日" を表示してください(結果は 真夏日)。

ヒント1を見る

if (temperature >= 30) { ... } else if (temperature >= 25) { ... } else { ... } の形にします。

ヒント2を見る

それぞれのブロックで System.out.println("真夏日"); のように表示します。

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。