3. 実際に書いてみよう(初心者向けコード例)
ここからは、switch文を実際にコードで書いて体験するパートです。
if文との違いや、**switchを使うことで得られる“読みやすさ”や“管理のしやすさ”**を、具体的に感じてみましょう!
✅ サンプル①:曜日に応じた処理の分岐(整数編)
まずは、整数(数字)を使って曜日を判定する例です。
java
public class DaySwitchExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("今日は月曜日です");
break;
case 2:
System.out.println("今日は火曜日です");
break;
case 3:
System.out.println("今日は水曜日です");
break;
case 4:
System.out.println("今日は木曜日です");
break;
case 5:
System.out.println("今日は金曜日です");
break;
case 6:
System.out.println("今日は土曜日です");
break;
case 7:
System.out.println("今日は日曜日です");
break;
default:
System.out.println("無効な曜日番号です");
}
}
}
🔍 解説:「なぜswitchを使うと読みやすいのか?」
このように、同じ変数 day を対象に複数の条件を分岐する場合、switch文を使うと
・コードの構造が明確になる
・どの条件でどの処理がされるのか一目でわかる
・メンテナンスや追加も簡単(caseを1つ追加するだけ)
といった可読性と保守性のメリットがあります。
if文でこれをやろうとすると、毎回 if (day == 1) ... と書き続けることになり、非常に読みにくくなるのです。
✅ サンプル①:曜日に応じた処理の分岐(文字列編)
Javaでは、String(文字列)に対してもswitchが使えます(Java 7以降対応)。
java
public class DayStringSwitch {
public static void main(String[] args) {
String day = "月";
switch (day) {
case "月":
System.out.println("今日は月曜日です");
break;
case "火":
System.out.println("今日は火曜日です");
break;
case "水":
System.out.println("今日は水曜日です");
break;
default:
System.out.println("不明な曜日です");
}
}
}
このように、曜日を日本語表記で扱いたい場面などでは、文字列のswitchがとても便利です。
✅ サンプル②:メニュー番号の選択による操作
次は、**ユーザーが選択肢を選ぶような「操作メニュー」**を想定したコードです。
java
public class MenuSwitch {
public static void main(String[] args) {
int menu = 2;
switch (menu) {
case 1:
System.out.println("商品一覧を表示します");
break;
case 2:
System.out.println("カートを表示します");
break;
case 3:
System.out.println("注文を確定します");
break;
case 4:
System.out.println("アプリを終了します");
break;
default:
System.out.println("無効なメニューです");
}
}
}
🔍 解説:現場でよくあるメニュー処理にも使える!
・ECサイトや業務システムでよくある「番号選択式の処理」も、switchを使えば一発。
・変更・追加も柔軟に対応可能。caseを1行追加するだけで、新しいメニューが追加できます。
・default で「その他」処理をまとめられるのも大きなメリット。
まとめ:switch文は「一目で流れがわかる」
実際にコードを書いてみるとわかるとおり、switch文は
・同じ変数を基準にした複数分岐をスッキリまとめられる
・if文よりも構造がシンプルで読みやすい
・初心者にも処理の流れがイメージしやすい
という強みがあります。
次は、switch文でやりがちなミスや注意点を紹介していきます。
「うまく動かない…」という悩みを防ぐために、ぜひチェックしてみましょう!
4. よくあるミスと注意点(switch文のポイント)
switch文はとても便利で見やすい構文ですが、使い方を間違えると予期しない動作を引き起こすこともあります。
ここでは、Java初心者がよくやってしまうミスや、switchとifの使い分けの判断基準を押さえておきましょう。
✅ breakの書き忘れに注意!
switch文で最もありがちなミスが、breakの書き忘れです。
java
int level = 1;
switch (level) {
case 1:
System.out.println("初級");
case 2:
System.out.println("中級");
case 3:
System.out.println("上級");
}
このコードを実行すると、level = 1のときに
初級
中級
上級
と、すべての処理が実行されてしまいます。
これは「フォールスルー(fall through)」と呼ばれる動作で、Javaではbreakを入れないと次のcaseに処理が流れていく仕様になっています。
✅ 正しい書き方
java
switch (level) {
case 1:
System.out.println("初級");
break;
case 2:
System.out.println("中級");
break;
case 3:
System.out.println("上級");
break;
}
各caseの最後には必ずbreakを書くようにするのが、ミス防止の鉄則です!
✅ default の書き忘れも意外と多い
もうひとつ忘れがちなポイントが、defaultの書き漏れです。
defaultは「どのcaseにも一致しなかったとき」の処理を担当する重要な存在。
これを省略すると、想定外の入力があった場合に何も起こらず、ユーザーに誤解を与えてしまう可能性があります。
◾ 例:defaultの有無で印象が変わる
defaultなし:
java
switch (input) {
case "A":
// 処理
break;
case "B":
// 処理
break;
}
→「C」など、想定外の値が入力されたとき、無反応になってしまう。
defaultあり:
java
default:
System.out.println("無効な選択肢です。もう一度入力してください。");
→ エラーハンドリングもできて、ユーザーフレンドリーな動きに。
✅ if文との使い分けはどう考える?
Javaでは、switch文もif文も条件分岐を行うための構文ですが、どちらを使うか迷うこともあります。
以下を参考に、状況に応じて使い分けてみましょう。
◾ switch文が向いているケース
比較するのが1つの変数で、その値に応じて処理を分けたい
選択肢が3つ以上ある(1〜5、A〜Eなど)
値が固定されている(文字列・数値・列挙型など)
◾ if文が向いているケース
条件が複雑(AかつB、AまたはBなどの論理式)
複数の変数や演算結果を比較する必要がある
範囲判定や不等号を使いたい(例:if (score >= 90))
◾ 実務での使い分けの一例
java
// switchが向いている例
switch (command) {
case "start":
case "stop":
case "restart":
// 状態に応じた処理
}
// ifが向いている例
if (score >= 90 && score <= 100) {
// 成績:A
}
このように、比較対象の性質と処理の複雑さによって、switchとifを使い分けるのがポイントです。
まとめ:switch文を安全に使う3つのポイント
1.breakは絶対に忘れない!
2.defaultは必ず入れて、例外にも備える!
3.「同じ変数 × 選択肢が複数」ならswitchが読みやすい!
こうした基本を押さえておくことで、switch文はif文よりもスッキリと、ミスの少ない分岐処理が書けるようになります。
次は、switch文の応用的なテクニックや、よりスマートに書く方法をご紹介していきます!
続き👉Java入門編:制御構文の基礎 条件分岐②:Javaのswitch文で効率よく分岐する方法 後編 | 有限会社バナナドリーム