ゼロから学ぶJava
トップ/条件分岐
条件分岐

switch文

5分で読めます16

この章で学ぶこと

switch 文を学びましょう。特定の値によって処理を分けたいときに、if よりもすっきり書けることがあります。

switch文とは?

if 文は「条件が true か false か」で分岐します。

一方、switch 文は「ある値が何であるか」によって分岐します。たとえば「曜日によって処理を変える」「ランクによってメッセージを変える」のような場面で使います。

switch文の基本形

java
1switch (変数) {
2 case 値1:
3 // 変数が値1のときに実行
4 break;
5 case 値2:
6 // 変数が値2のときに実行
7 break;
8 default:
9 // どのcaseにも一致しないときに実行
10 break;
11}

コードで確認しよう

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}

day が3なので「水曜日」が表示されます。

breakを忘れないように

case の最後に break; を書くのが大切です。break がないと、次の case にも処理が流れてしまいます(フォールスルーといいます)。

実際に break を忘れるとどうなるか見てみましょう。

java
1int day = 1;
2
3switch (day) {
4 case 1:
5 System.out.println("月曜日"); // ここを実行後、次のcaseへ流れる
6 case 2:
7 System.out.println("火曜日"); // これも実行されてしまう
8 break;
9 case 3:
10 System.out.println("水曜日");
11 break;
12}

day が1なのに「月曜日」と「火曜日」の両方が表示されてしまいます。各 case の末尾に break; を忘れないようにしましょう。

if文とどう使い分ける?

状況向いている書き方
範囲で判定(80以上など)`if` 文
特定の値で判定(1、2、3など)`switch` 文

同じことが if でも書けますが、選択肢が多いときは switch の方がコードが読みやすくなります。

ポイント

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

まとめ

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

確認問題

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