Java switch-case 文完全解説:構文、例、ベストプラクティス
switch 文は日常の電化製品でおなじみです—ライトスイッチでランプを点けるようなものです。Java でも switch は似た役割を果たします:単一の値を評価し、一致するブロックのみを実行します。
Java の switch-case とは?
switch は、式を複数の case ラベルと照合する条件分岐の一種です。式がラベルと一致すると、対応するブロックが break または switch の終わりに達するまで実行されます。どのラベルにも一致しない場合、default ブロックが実行されます。
以下は1桁の数字を英単語にマッピングする簡潔な例です。
class SwitchBoard {
public static void main(String[] args) {
int iSwitch = 4;
switch (iSwitch) {
case 0: System.out.println("ZERO"); break;
case 1: System.out.println("ONE"); break;
case 2: System.out.println("TWO"); break;
case 3: System.out.println("THREE"); break;
case 4: System.out.println("FOUR"); break;
default: System.out.println("Not in the list"); break;
}
}
}
出力: FOUR
なぜ if-else ではなく switch を使うか?
- 可読性:単一の switch 文は
if-elseの連鎖よりスキャンしやすい - 保守性:ケースの追加・削除が最小限の編集で済む
- パフォーマンス:多数の異なる値に対して、コンパイラがルックアップテーブルやジャンプテーブルを最適化するため switch が高速なことがある
ただし、範囲チェックや複雑なブールロジックには if-else が適しています。
break と default の理解
breakは switch ブロックを抜け、後続ケースへのフォールスルーを防ぐdefaultはどのケースにも一致しないときの安全網として実行される
break の省略はフォールスルーを引き起こし、意図的(複数ケースのグルーピングなど)でない限りバグの原因になります。
サポートされる型と Java 8 の拡張
- Java 8 以前は
byte、short、int、char、enum、String(Java 7)をサポート - Java 8 で完全な
Stringサポートが追加され、テキスト値の直接比較が可能に caseラベルの数に制限なし。ただしコンパイル時定数でなければならない
詳細は Oracle の公式 Java チュートリアルを参照。
実践的なヒント
- 最も頻繁にマッチするケースを上に置くと微小なパフォーマンス向上
defaultで予期せぬ値を処理し、堅牢性を向上- 複数ケースで同一ロジックを実行する場合、間に
breakを置かず連続して記述
自分だけのスイッチボードを作る準備はできましたか? 明確で互いに排他的なケースを定義し、break の力でロジックを整理しましょう。
図解

Java
- C# switch 文をマスターする:構文、例、ベストプラクティス
- C++ switch-case文完全ガイド:構文、フロー、実践的な計算機例
- C++ switch文をマスター:構文、使い方、実践例
- Java if…elseをマスター:制御フローを徹底解説
- Java String.length()メソッド:文字列サイズ取得の実例解説
- Java String.charAt()完全解説:構文、戻り値、例外、実例
- Java String.contains()メソッド:部分文字列チェックの実践例
- Java String.endsWith()マスター:文字列サフィックスチェック実例付き
- Java BufferedReader でファイル読み込み:実践ガイドと例
- Javaで挿入ソート:わかりやすい例とステップバイステップガイド
- Javaで選択ソート:ステップバイステップ例と完全コード