Java入門編:制御構文の基礎 条件分岐②:Javaのswitch文で効率よく分岐する方法(前編)

「if文って便利だけど、たくさん並ぶとゴチャゴチャして読みにくい…」
そんなふうに感じたことはありませんか?

たとえば、選択肢が5つ、6つと増えてくると、

java

if (...) {
} else if (...) {
} else if (...) {
} else {
}

この繰り返しがどこか見づらくなってきますよね。

そこで登場するのが、**Javaの「switch文(スイッチ文)」**です。

switch文は、1つの変数の値に応じて複数の処理を分けたいときにとても便利な構文で、
「見た目もスッキリ」「ミスも減りやすい」…まさに
整理整頓されたif文ともいえる存在です。

バナナドリームが今回お届けするこの記事では、
Java初心者の方に向けて、switch文の

・具体的な使いどころ

・基本構文と書き方

・実際のコード例と解説

・つまずきやすいポイントや応用編

・システムエンジニアの現場での活用例

をわかりやすく丁寧に紹介していきます。

前回のif文に続いて、「Javaの条件分岐をもっと効率よく使いこなしたい!」という方にぴったりの内容です。

それでは早速、switch文がどういう場面で活躍するのかから見ていきましょう!

1. switch文って何?どんなときに使うの?(具体的な使いどころ)

前回の記事で紹介した if文・else文は、「ある条件に当てはまるかどうか」で処理を分けるときに使う基本の構文でした。

しかし、分岐の数が増えてくると、if文だけではコードが読みにくくなることもあります。

そんなときに活躍するのが、今回の主役――switch文です。

✅ switch文は“選択肢”を整理するための分岐構文

Javaのswitch文は、ひとつの変数の値に応じて処理を分けたいときに非常に便利な構文です。

if文でも同じことはできますが、switch文を使うとコードがすっきりして見やすくなり、ミスも減りやすくなります。

◾ たとえば、こんなとき

曜日によってメッセージを変えたい

メニュー番号に応じて処理を切り替えたい

商品コードに応じて値段を設定したい

エラーレベル(info / warn / error)に応じてログ出力を分けたい

これらのように、「特定の値に応じて、明確に分岐させたい」場面でswitch文は大活躍します。

✅ システムエンジニアの現場でもよく使われる理由

バナナドリームでも開発現場でのコードレビューをしていると、
「このif文、switchに変えた方が読みやすくなるかも?」という場面によく出くわします。

実務では、たとえば次のようなケースでswitch文がよく使われています:

・管理画面で、操作番号に応じた処理を分ける

・バッチ処理の中で、処理区分コード("A"、"B"、"C"など)に応じて動作を切り替える

・APIの受け取り値(ステータス番号など)に応じたレスポンスの出し分け

特に、変数の中身を判定して「Aならこの処理」「Bならあの処理」…といった形式で分岐させたいとき、switchはif文よりもはるかに見通しの良いコードになります。

✅ 「分岐が3つ以上あるなら、まずswitchを検討!」

if文はどんな条件にも対応できる汎用性が魅力ですが、

判断する対象がひとつで、それに対していくつもの選択肢がある場合は、switchの方が圧倒的に適しています。

Javaのプログラミングを進めていくうちに、「これはifよりswitchのほうがスッキリ書けるな」と感じる瞬間がきっと訪れるはずです。

2. switch文の基本的な書き方(文法と解説)

switch文を使うことで、if文よりもすっきりとした条件分岐を書くことができます。

ここでは、Javaにおけるswitch文の基本構文と、よく使うパーツであるcasedefault、そして注意すべきbreakの使い方まで丁寧に解説します。

✅ switch文の基本構文を覚えよう

まずは、Javaにおけるswitch文の基本的な書き方を見てみましょう。

java

switch (変数) {
    case 値1:
        // 値1に一致したときの処理
        break;
    case 値2:
        // 値2に一致したときの処理
        break;
    default:
        // 上記のいずれにも一致しなかったときの処理
}

このように、対象の変数の値に応じて、それぞれのcaseブロック内の処理を実行するのがswitch文です。

switch の後ろには、分岐したい対象の変数を入れます(整数・文字列など)。

case キーワードのあとに比較したい値を書き、その下にその場合の処理を記述します。

break は、該当する処理を実行したあと、switch文を抜けるための命令です。

default は、どのcaseにも一致しなかったときに実行される処理を指定します。

break の重要性:忘れると意図しない動作に!

switch文で特に重要なのが、各caseの後に書く break の存在です。

これを忘れてしまうと、一致したcaseの処理を実行した後に、次のcase以降の処理まで続けて実行されてしまうという問題が発生します(これをフォールスルーと呼びます)。

◾ 悪い例:breakを忘れたケース

java

int day = 2;

switch (day) {
    case 1:
        System.out.println("月曜日");
    case 2:
        System.out.println("火曜日");
    case 3:
        System.out.println("水曜日");
}

このコードを実行すると、dayが2のときに

火曜日  
水曜日  

と表示されてしまいます。

◾ 正しい書き方(breakあり)

java

switch (day) {
    case 1:
        System.out.println("月曜日");
        break;
    case 2:
        System.out.println("火曜日");
        break;
    case 3:
        System.out.println("水曜日");
        break;
}

このように、各caseの末尾には必ずbreakを書くようにしましょう
これを忘れると、
バグにつながる原因になります。

default は「それ以外」の受け口

default は、どのcaseにも一致しなかった場合に実行される処理を記述します。
これは、
if-elseで言えばelseにあたる部分です。

java

switch (command) {
    case "start":
        System.out.println("開始します");
        break;
    case "stop":
        System.out.println("停止します");
        break;
    default:
        System.out.println("コマンドが不明です");
}

どの条件にも該当しない場合の安全なフォールバック処理として、defaultは非常に重要です。

✅ 【補足】Java 14以降の“拡張switch”にも注目(オプション)

Java 14からは、より簡潔に書ける「新しいswitch文の記法」が導入されました。

java

String message = switch (day) {
    case 1 -> "月曜日";
    case 2 -> "火曜日";
    case 3 -> "水曜日";
    default -> "不明な曜日";
};

この書き方は、switchが値を返すようになったという点で画期的です。
また、
breakも不要で、コードがよりクリーンにまとまります。

ただし、初心者のうちは基本構文をしっかり身につけてから使うようにしましょう。
慣れてきたら、こうした新しい構文にも挑戦してみるのがおすすめです!

続き👉Java入門編:制御構文の基礎 条件分岐②:Javaのswitch文で効率よく分岐する方法 中編 | 有限会社バナナドリーム