JavaにおけるSwitch文
メニューを表示するにはスワイプしてください
これまで、if、else、else if がさまざまな状況に対応する主な手段でした。これらは条件、範囲、比較の判定に適しています。
しかし、範囲の比較ではなく、1つの変数を複数の正確な値と比較したい場合もあります。例えば:
- 顧客が支払い方法を選択する場合
- コーヒー注文で特定の受け取り方法を指定する場合
- ロイヤルティメンバーが報酬ランクを選択する場合
このような場合に**switch文**が役立ちます。1つの値を複数の正確な値と比較し、より整理された形で記述できます。
構造
switch (variable) {
case "value1" -> {
// code
}
case "value2" -> {
// code
}
default -> {
// fallback code
}
}
Javaは各caseを順番にチェックし、一致するものを見つけます。
例
Main.java
1234567891011121314151617181920212223242526package com.example; public class Main { public static void main(String[] args) { String pickupType = "delivery"; switch (pickupType) { case "pickup": System.out.println("Your coffee will be ready at the counter"); break; case "delivery": System.out.println("Your coffee is on the way"); break; case "dine-in": System.out.println("Enjoy your coffee inside the cafe"); break; default: System.out.println("Unknown order type"); break; } } }
JavaはpickupTypeをケースごとに判定します。"pickup"は一致せず、"delivery"が一致するため、"Your coffee is on the way"が出力され、breakですぐにswitch文が終了します。一番下のdefaultブロックは最終的なelseのように機能し、どのケースにも一致しない場合のみ実行されます。
Java 14以降 — 新しいswitch構文
Java 14以降では、->アローを使った新しい構文が導入されました。
switch (pickupType) {
case "pickup" -> System.out.println("Your coffee will be ready at the counter");
case "delivery" -> System.out.println("Your coffee is on the way");
case "dine-in" -> System.out.println("Enjoy your coffee inside the cafe");
default -> System.out.println("Unknown order type");
}
変更点:
breakが不要;->の代わりに:を使用;- 各ケースが自動的に分離され、フォールスルーのリスクなし;
- よりシンプルで読みやすい。
どちらのバージョンも動作は同じですが、新しい構文の方が現代的で安全です。
覚えておくべきルール:
- 比較や範囲には
if/else ifを使用; - 1つの値を複数の正確な選択肢と比較する場合は
switchを使用。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 6
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 6