Java のelse if文
1. else if ステートメント
else if ステートメントは、最初の if 条件が false だった場合に、次にテストする新しい条件を指定するために使用します。
1.1 構文 (Syntax)
if (条件1) {
// 条件1が true の場合に実行されるコードブロック
} else if (条件2) {
// 条件1が false で、かつ条件2が true の場合に実行されるコードブロック
} else {
// すべての条件が false の場合に実行されるコードブロック
}これは現実世界のシチュエーションに例えるとわかりやすいでしょう。「もし(if)雨が降っていたら、傘を持っていく。そうでなくて、もし(else if) 晴れていたら、サングラスをかける。そうでなければ(else)、そのまま普通に外出する」といった具合です。
2. else if の使用例:天気の判定
以下のコードでは、数値によって天気を判定し、適切なアクションを出力します。
2.1 天気判定プログラムのコード例
int weather = 2; // 1 = 雨, 2 = 晴れ, 3 = 曇り
if (weather == 1) {
System.out.println("傘を持って行ってください。");
} else if (weather == 2) {
System.out.println("サングラスをかけましょう。");
} else {
System.out.println("普通に外出しましょう。");
}
// 出力: "サングラスをかけましょう。"この例では weather の値が 2 です。最初の条件(weather == 1)は満たされないため、if ブロックはスキップされます。次にプログラムは else if の条件(weather == 2)をチェックし、これが true となるため、else if ブロックが実行されて "サングラスをかけましょう。" と出力されます。
3. 応用例:時間帯によるメッセージの切り替え
この例では、1日の時刻(time)に応じて3種類のメッセージを切り替えます。
3.1 時間帯判定のコード例
int time = 16;
if (time < 12) {
System.out.println("おはようございます。");
} else if (time < 18) {
System.out.println("こんにちは。");
} else {
System.out.println("こんばんは。");
}
// 出力: "こんにちは。"3.2 コードの解説
変数 time の値は 16 です。最初の条件(time < 12)は false ですが、2番目の条件(time < 18)は true です。そのため、else if ブロックが実行され、"こんにちは。" と出力されます。
もし time の値が 22 であれば、どの条件(< 12 および < 18)も満たさないため、代わりに else ブロックの内容である "こんばんは。" が出力されます。
int time = 22;
if (time < 12) {
System.out.println("おはようございます。");
} else if (time < 18) {
System.out.println("こんにちは。");
} else {
System.out.println("こんばんは。");
}
// 出力: "こんばんは。"このように else if を重ねることで、複数の可能性に対して柔軟にプログラムの挙動をコントロールすることができます。さらに多くの条件を分岐させたい場合は、次章で紹介する switch 文も非常に強力な選択肢になります。