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;45 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;23switch (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 にも一致しないときに実行されるのはどれですか?