Javaにおけるelse ifチェーン
メニューを表示するにはスワイプしてください
これまでのところ、if-else文は2つの結果だけが必要な場合に適しています。しかし、実際のシステムでは、判断は通常それ以上に細かくなります。
例えば、コーヒーショップでは注文数によって異なるリワードレベルが設定されている場合があります:
- 小さい注文には追加特典なし;
- 中くらいの注文には小さなボーナス;
- 大きい注文にはより大きなリワード;
- 非常に大きい注文には特別なオファーが提供されることも。
このような場合に**else ifチェーン**が役立ちます。複数の条件を順番にチェックできるためです。プログラムは上から下へと進み、最初にtrueとなる条件のブロックだけを実行し、それ以降は無視します。
構造
if (condition1) {
// runs if condition1 is true
} else if (condition2) {
// runs if condition2 is true
} else {
// runs if none are true
}
1つのブロックだけが実行されます。最初に一致した条件が優先されます。
例
Main.java
123456789101112131415161718package com.example; public class Main { public static void main(String[] args) { int deliveryDistance = 7; if (deliveryDistance > 20) { System.out.println("Delivery fee: 10€"); } else if (deliveryDistance > 10) { System.out.println("Delivery fee: 5€"); } else if (deliveryDistance > 5) { System.out.println("Delivery fee: 2€"); } else { System.out.println("Free delivery"); } } }
deliveryDistance を上から順に各条件と比較します。7 は 20 や 10 より大きくありませんが、5 より大きいため、3番目のブロックが該当し、"Delivery fee: 2€" が出力されます。一番下の else は、どの条件にも当てはまらなかった場合のみ実行されます。
非常に重要なポイントは、順序が重要であることです。Java は最初に true となる条件で処理を止めるため、判定は最も厳しいものから最も一般的なものへと並べる必要があります。そうしないと、より広い条件が、より具体的なルールに該当する値を誤って捕捉してしまう可能性があります。
else if チェーンは意思決定のはしごのようなものです。プログラムは正しい条件に出会うまで一段ずつ下っていきます。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 5
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 5