駆け出しのエンジニア日記

プログラミング言語勉強中の奮闘日記

Javaのswitch-case構文

switch-case構文は条件分岐の一種であり、switchの値が一致するcaseラベルごとに処理の流れを分岐させていくものである

・caseラベルには必ずswitchの値と同じ型の変数値を記述する

・各caseラベルと別にdefaultラベルも指定することができる

→defaultラベルは他のcaseラベルと一致しない場合に処理が実行される

意味的にはif-else構文のelseと同じになる

public static void main(String args) {
int myAge = 28;
switch (myAge) {
case 8:
System.out.println("私の年齢は8歳です");
break;
case 18:
System.out.println("私の年齢は18歳です");
break;
case 28:  //画面に表示されるのはこのcaseになる
System.out.println("私の年齢は28歳です");
break;
case 38:
System.out.println("私の年齢は38歳です");
break;
case 48:
System.out.println("私の年齢は48歳です");
break;
default:
System.out.println("私の年齢はヒミツです");
break;
}
}

変数myAgeと一致するcaseラベルを探す

 

例外パターン

public static void main(String args) {
int myAge = 48;
switch (myAge) {
case 8:
System.out.println("私の年齢は8歳です");
break;
case 18:
System.out.println("私の年齢は18歳です");
break;
case 28:
System.out.println("私の年齢は28歳です");
case 38:
System.out.println("私の年齢は38歳です");
break;
case 48:
System.out.println("私の年齢は48歳です");
break;
default:
System.out.println("私の年齢はヒミツです");
break;
}
}

また、上記のようにbreakがない場合は、その下のcaseまで実行してしまう。

その際、画面に表示されるのは、

"私の年齢は28歳です"」と「"私の年齢は38歳です"」となってしまう。

breakの記述は必須になる。

 

ほとんどのコードにおいて条件分岐の際はif構文を使うことが多いが、if構文に比べて見やすいのがメリットになる

 

以上、簡単にswitch-case構文まとめてみました。