ゼロから学ぶJava
トップ/条件分岐
条件分岐16章 / 全26

switch文

この章で学ぶこと

switch 文を学びましょう。「ある値が何であるか」によって処理を分けるとき、if よりもすっきり書けます。

「値が何か」で分岐したい

if 文は「条件が true か false か」で分岐します。「曜日が何か」「ランクが何か」のように「特定の値が何か」で分けたいとき、if を並べると読みにくくなります。

switch 文を使うと、同じ処理をすっきり書けます。

switchで曜日を分岐する

text
1水曜日
java
1public class Main {
2 public static void main(String[] args) {
3 int day = 3;
4
5 switch (day) {
6 case 1:
7 System.out.println("月曜日");
8 break;
9 case 2:
10 System.out.println("火曜日");
11 break;
12 case 3:
13 System.out.println("水曜日");
14 break;
15 default:
16 System.out.println("その他の曜日");
17 break;
18 }
19 }
20}
  • switch (day)day の値によって分岐する
  • case 3:day が3なので「水曜日」を表示
  • break; → このcaseを終えてswitch文を抜ける
  • default: → どの case にも一致しないときの受け皿

break を忘れると「続いてしまう」

java
1// breakを忘れた場合
2case 1:
3 System.out.println("月曜日"); // 実行される
4case 2:
5 System.out.println("火曜日"); // これも実行されてしまう
6 break;

break がないと次の case にも処理が流れます。case 1 なのに「月曜日」と「火曜日」の両方が表示される事態になります。

ポイント

switch は「ある値が何か」によって処理を分けます。各 case の後に break; を書き忘れないようにしましょう。

よくあるミス

break を書き忘れる

case の末尾に break; を忘れないようにしましょう。case を書いたら直後に break; も書く習慣をつけると安全です。

まとめ

  • switch 文は特定の値によって処理を分けるときに使う
  • case 値: で一致するものを選ぶ
  • default: はどの case にも一致しないときの受け皿
  • case の最後に break; を書かないと処理が次の case に流れる

確認問題

switch文でどの case にも一致しないときに実行されるのはどれですか?