Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Javaにおけるelse ifチェーン | 演算子と条件分岐
Java入門

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

Main.java

123456789101112131415161718
package 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 を上から順に各条件と比較します。72010 より大きくありませんが、5 より大きいため、3番目のブロックが該当し、"Delivery fee: 2€" が出力されます。一番下の else は、どの条件にも当てはまらなかった場合のみ実行されます。

非常に重要なポイントは、順序が重要であることです。Java は最初に true となる条件で処理を止めるため、判定は最も厳しいものから最も一般的なものへと並べる必要があります。そうしないと、より広い条件が、より具体的なルールに該当する値を誤って捕捉してしまう可能性があります。

else if チェーンは意思決定のはしごのようなものです。プログラムは正しい条件に出会うまで一段ずつ下っていきます。

question mark

このコードは何を出力しますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  5
some-alt