条件分岐第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;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}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 にも一致しないときに実行されるのはどれですか?