if文とswitch文、違いがわからなくて混乱していませんか?構文が覚えられない、break忘れでバグ、defaultって必要?そんな悩みがあなたを待ち構えています。
私もJavaを始めたころ、ifだけで全部書いていました。switch文を使うともっとスッキリするのに、それを知らずに長いコードに苦しんでいました。
この記事では、switch文の書き方、ifとの使い分け、breakの罠、defaultの意味、複数の値を処理する方法まで、初心者がつまずくポイントをやさしく解説します。
「やっと分岐が整理できた」「if文より読みやすくなった」といった声が多く寄せられている内容です。
例えば「今日の曜日でメッセージを出す」コード。if文だと6行、switch文なら3行で済みます。
読み終えるころには、「switch文って便利!」と笑顔になっているはずです。それでは一緒に学んでいきましょう!
if文との違いがわからない
switch文は「値に応じた分岐」に強い!if文は「条件式が複雑なとき」に使いましょう。
if文は条件が自由に書けますが、コードが長くなりがち。switch文は値が固定されているときに、スッキリ書けます。
曜日に応じたメッセージを出したいとき:
// if文の場合
if (day.equals("月")) {
System.out.println("月曜日です");
} else if (day.equals("火")) {
System.out.println("火曜日です");
}
// 以下省略
// switch文の場合
switch (day) {
case "月": System.out.println("月曜日です"); break;
case "火": System.out.println("火曜日です"); break;
// 以下省略
}
→ 値が明確なときはswitchのほうが読みやすい!
ifとswitchの違いは「条件の自由度 vs 見やすさ」。どちらを使うかは、場面に応じて選びましょう!
switch文の基本構文が覚えられない
switch文は「switch」「case」「break」「default」の4つでできています。型を覚えれば迷いません。
構文に慣れていないだけ。パターンを体で覚えましょう。
構文を見てみましょう!
switch (変数) {
case 値1:
処理1;
break;
case 値2:
処理2;
break;
default:
どれにも当てはまらない処理;
}
switch
の中には「比べたい変数」case
ごとに処理を分岐- 最後に
break
を忘れない
switch文は「型」で覚えよう。実際に書いてみれば、すぐ体になじみます!
breakを書き忘れて全部実行される!?
breakを書かないと、次のcaseにどんどん“なだれ込む”のがswitch文の特徴です。
Javaのswitch文は、breakがないと処理がそのまま次へ進みます(=フォールスルー)。
具体例を見てみましょう!
String fruit = "りんご";
switch (fruit) {
case "りんご":
System.out.println("赤い果物");
case "みかん":
System.out.println("オレンジの果物");
}
String fruit = "りんご";
switch (fruit) {
case "りんご":
System.out.println("赤い果物");
case "みかん":
System.out.println("オレンジの果物");
}
→ りんご
でも両方表示されてしまう!
正しくは:
case "りんご":
System.out.println("赤い果物");
break;
breakは「ここでストップ!」の意味。毎回しっかり書くクセをつけよう!
defaultっていらないの?
defaultは「どれにも当てはまらなかったとき」の保険。絶対ではないけど、つけたほうが安全!
もしすべてのcaseが外れたとき、defaultがあれば何かしらの処理ができます。なければ、何も起こりません。
switch (色) {
case "赤": System.out.println("レッド"); break;
case "青": System.out.println("ブルー"); break;
default: System.out.println("知らない色");
}
defaultは「その他全部」に対する最後の砦。入れておけば安心です!
複数の値に同じ処理をしたい
複数のcaseを1つにまとめられます。Java 14以降はさらに便利になりました!
「AでもBでもCでも同じ処理をしたい」ということはよくあります。
従来の書き方:
switch (key) {
case 1:
case 2:
case 3:
System.out.println("1〜3のどれか");
break;
}
Java14以降:アロー式(→)
switch (key) {
case 1, 2, 3 -> System.out.println("1〜3のどれか");
}
書き方を知っておくだけで、コードがすっきり!新しい書き方もどんどん試してみよう!
まとめ:switch文を使いこなそう!
switch文は「条件がはっきりしているとき」の強い味方です。
この記事で紹介したように:
- ifとの使い分けを意識する
- 基本文法を型で覚える
- breakやdefaultを丁寧に扱う
- 複数caseの書き方を知っておく
これらのポイントをおさえるだけで、switch文はぐんと使いやすくなります。
あとは、実際に書いて動かすだけ! ぜひ、自分でオリジナルのswitchコードを書いてみてくださいね。