Javaのswitch文の書き方とは?break・defaultの使い方を初心者向けに地方フルリモートエンジニアが実務視点で解説

Java基礎

Javaの学習を進めていくと、「特定の条件によって処理を細かく分けたい」という場面が増えてきます。そんなときに便利なのが「switch文」です。if文でも同じことはできますが、選択肢が多い場合にはswitch文を使うことで、驚くほどコードがスッキリと読みやすくなります。

この記事では、switch文の基本から現場で必須の注意点、そして最新のJavaでの便利な書き方まで、実務での体験談を交えて分かりやすく解説します。

生徒
if文があれば何でもできる気がするんですが、わざわざswitch文を覚える必要ってあるんですか?
先生
いい質問だね!確かにif文でも書けるけれど、switch文には「多方向の分岐」をパッと見て理解しやすくするという大きなメリットがあるんだ。現場では可読性が命だからね!

Java switch文とは何か?初心者が知っておくべき基本概念

switch文とは、ある式の「値」に基づいて、複数の処理の中から一致するものを一つ選んで実行する多方向分岐の構文です。

「この値ならこのケース(case)」というように、パズルのピースをはめるような感覚で条件分岐を記述できます。条件が「もし1なら」「もし2なら」のように、特定の値との一致を判定する場合には非常に強力です。

switch文の基本構造をマスターしよう

まずは基本の形を見てみましょう。Javaのswitch文は以下のような構成になっています。

switch (判定する変数) {
    case 値1:
        // 変数が値1のときの処理
        break; // switch文を終了する
    case 値2:
        // 変数が値2のときの処理
        break;
    default:
        // どの値にも一致しなかったときの処理
        break;
}

ここで重要なのは、caseの後の「コロン(:)」と、各処理の終わりの「break;」です。

運営者
実務で「ステータス管理(未処理、進行中、完了など)」を行うプログラムを書くとき、私は必ずと言っていいほどswitch文を使います。if-elseを繰り返すよりも、どの状態に対してどんな処理をするのかが一目で分かるからです。

条件分岐の基本であるif文については、こちらの記事で詳しく解説しています。

Javaのif文の書き方とは?条件分岐を初心者向けに地方フルリモートエンジニアが実務視点で解説
プログラミングを学び始めると、必ずと言っていいほど最初に出会う「壁」であり、かつ最も重要な構文の一つが「条件分岐(if文)」です。Javaにおけるif文は、プログラムに「判断」をさせるための仕組み。この記事では、if文の基本から現場で本当に...

switch文はどう使う?具体的な実践例で理解する

switch文は、数値だけでなく文字列(Java 7以降)などでも使用可能です。具体的な例を見て、使い方をイメージしてみましょう。

例1:数値による曜日の判定

数値を入力すると、対応する曜日を判定するプログラムです。

int dayOfWeek = 1;

switch (dayOfWeek) {
    case 1:
        System.out.println("月曜日です");
        break;
    case 2:
        System.out.println("火曜日です");
        break;
    default:
        System.out.println("その他の曜日、または不正な入力です");
        break;
}

このコードでは、dayOfWeekが1なので、最初のケースが選ばれ「月曜日です」と出力されます。もしどの数値にも当てはまらなければ、defaultが実行されます。

例2:文字列によるコマンド分岐

実務では文字列の判定も非常によく使います。

String action = "START";

switch (action) {
    case "START":
        System.out.println("起動します...");
        break;
    case "STOP":
        System.out.println("停止します...");
        break;
    default:
        System.out.println("未定義のアクションです");
        break;
}

このコードでは、文字列「START」に一致するケースが実行されます。if文で書くよりも条件の意図が明確になりますね。

データの種類(型)については、以下の記事で詳しく紹介しています。

Javaのデータ型一覧!int・Stringなど基本の型を初心者向けに地方フルリモートエンジニアが実務視点で解説
Javaで変数を使うとき、必ず指定しなければならないのが「データ型」です。データ型は、変数にどんな種類のデータを入れるかを決める重要な要素。この記事では、Javaのデータ型の種類を一覧で紹介し、intやStringなどの基本的な型を初心者向...

【現場の失敗談】breakを忘れると何が起きる?「フォールスルー」の恐怖

switch文で初心者が最も犯しやすい、そして現役エンジニアでもうっかりやってしまうミスが、「breakの書き忘れ」です。

Javaのswitch文は、breakがないと、条件が一致したケースの「下にある処理」まで次々と実行してしまいます。これを「フォールスルー」と呼びます。

NG: breakを書き忘れた例
int status = 1;
switch (status) {
    case 1:
        System.out.println("初期化を開始します");
        // ここでbreakを忘れた!
    case 2:
        System.out.println("データを削除します");
        break;
}
// 実行結果:
// 初期化を開始します
// データを削除します ← 意図せずデータが消えてしまう!
運営者
昔、入社1年目の頃に決済フラグの判定で break を書き忘れてしまい、正常決済なのに「キャンセル処理」まで突き抜けて実行されるという恐ろしいバグを出したことがあります。それ以来、switch文を書くときは手が震えるほど break を確認するようになりました(笑)

もちろん、意図的に break を書かないことで「複数のケースで同じ処理をさせる」というテクニックもありますが、初心者のうちは「1ケースに1break」を鉄則にしましょう。

switch文とif文、どっちを使うべき?プロの使い分け基準

「if文でも書けるのに、なぜswitch文があるのか?」という疑問への答えは、ズバリ「読みやすさと意図の明確化」にあります。プロの現場では、以下のように使い分けます。

特徴 switch文がおすすめ if文がおすすめ
判定内容 特定の値と一致するか(等価) 範囲(以上・以下)や複雑な条件
選択肢の数 多い場合(3つ以上が目安) 少ない場合(2択など)
可読性 フラットで読みやすい else-ifが重なると読みにくい

例えば、「点数が80点以上ならA、70点以上ならB」のような範囲判定には、if文(特に else if)が最適です。

Javaのelse ifとは?複数条件分岐の書き方・使い方を初心者向けに地方フルリモートエンジニアが実務視点で解説
プログラミングでは、条件に応じて異なる処理を実行する場面が頻繁にあります。if文だけでは2択しかできませんが、実際の開発では3つ以上の選択肢から処理を選びたい場面が多くあります。そんなときに使うのが「else if文」です。この記事では、J...

【モダンJava】より安全で簡潔な「switch式」を知っておこう

実は最近のJava(Java 12以降)では、従来のswitch文の弱点を克服した「switch式」という新しい書き方が登場しています。

これを使えば、面倒な break を書く必要がなく、フォールスルーのバグも防げます。

String result = switch (score) {
    case 100 -> "満点!";
    case 90, 91, 92 -> "おしい!"; // 複数をカンマで指定可能
    default -> "もっと頑張りましょう";
}; // 式なのでセミコロンが必要

アロー演算子(->)を使うことで、パッと見て何が返ってくるかが一目瞭然です。新しくJavaを学ぶなら、将来的にこの書き方が主流になるのでぜひ覚えておきましょう。

運営者
現在の開発現場では、古いバージョンのJavaを使っているプロジェクトもまだ多いため、従来のswitch文もマスターしておく必要があります。ただ、最新のプロジェクトではswitch式が積極的に採用されていますね。技術の変遷を肌で感じられるのも、エンジニアの面白いところです。

まとめ:switch文をマスターして読みやすいコードへ

switch文は、プログラムに「整理整頓」をもたらしてくれる強力なツールです。最後に、この記事の重要ポイントを振り返りましょう。

この記事のポイント

  • switch文は「特定の値」に基づく多方向分岐に最適
  • breakを忘れると下のケースまで実行される(フォールスルー)
  • どのケースにも合わない場合は default が実行される
  • 範囲判定ならif文、特定の値ならswitch文という使い分けがプロの技
  • 最新のJavaではより安全な「switch式」が使える
運営者
基礎を一つずつ丁寧に積み上げていけば、いつの間にか複雑なシステムも作れるようになります。switch文を使いこなして、誰が見ても「綺麗だね」と言われるコードを目指しましょう!

次は、プログラムの基礎である「変数」や「定数」について復習するのも良いでしょう。

Javaの変数とは?宣言・初期化の基本を初心者向けに地方フルリモートエンジニアが実務視点で解説
プログラミングを学び始めると、最初に出てくる重要な概念が「変数」です。Javaにおける変数は、データを一時的に保存するための「箱」のようなもの。この記事では、Javaで扱う変数の基本から宣言・初期化の方法まで、初心者の方にもわかりやすく解説...
Javaの定数とは?使い方と命名規則を初心者向けに地方フルリモートエンジニアが実務視点で解説
Javaプログラミングでは、一度決めたら変更しない値を扱う場面がよくあります。そんなときに使うのが定数(final)です。この記事では、Javaの定数の基本から使い方・命名規則まで、初心者の方にもわかりやすく解説します。定数って変数と何が違...