Javaのswitch文で条件分岐を行うサンプルです。
目次 | switch文とは |
switch文のサンプル | |
nullをチェックするサンプル | |
フォールスルー(breakがない場合) | |
switch文の中でif文を使用する |
switch文とは
switch(条件){ case 値 : 処理 break; ・・・ default: 処理 } |
- 条件の値とcaseの値が一致すれば、配下の処理が実行されます。
- breakでswitch文を抜けます。breakがないと下の判定(case/default)に行ってしまいます。
- defaultは、条件の値がどのcaseの値にも一致しない時に実行されます。省略可能ですが書いたほうが良いです。
- JavaSE7以降であればswitch文で文字列の判定もできます。
ただし、値がnullの場合、NullPointerException例外が発生するので判定をする際は、switch文の前に値がnullでないことを確認したほうがよいです。
switch文のサンプル
文字列の判定はJava7からできます。
public class Test1 {
public static void main(String[] args) {
String a = "2";
switch (a) {
case "1":
System.out.println("1つめ");
break;
case "2":
System.out.println("2つめ"); // 2つめが出力される
break;
default:
System.out.println("3つめ");
}
}
}
9行目のcase "2"は変数aの値と一致するのでその配下の処理が実行されます。
11行目のbreakでswitch文を抜けます。
nullをチェックするサンプル
switch文の前にnullをチェックするサンプルです。
String a = null;
if (a == null) {
System.out.println("nullです"); // nullですが出力される
} else {
switch (a) {
case "a":
System.out.println("1つめ");
break;
case "b":
System.out.println("2つめ");
break;
default:
System.out.println("3つめ");
}
}
1行目は、変数にnullをセットしています。
3行目は、if文でnullかチェックしています。
値がnullでない場合は、6行目のelseからswitch文が実行されます。
フォールスルー(breakがない場合)
String a = "1";
switch (a){
case "1":
System.out.println("1つめ"); // 1つめが出力される
case "2":
System.out.println("2つめ"); // 2つめが出力される
break;
default:
System.out.println("3つめ");
}
6行目は、breakがありません。
5行目のcase "1"の処理の後、7行目のcase"2"の処理も実行されます。
フォールスルー(fall through/落ちる)と呼ばれます。
breakを書き忘れたのかわかりづらいので使用しないほうが良いです
switch文の中でif文を使用する
switch文の中でif文を使用できます。
int a = 3;
switch (a){
case 3:
if (a % 2 == 0) {
System.out.println("偶数");
} else {
System.out.println("奇数"); // 奇数が出力される
}
break;
default:
System.out.println("その他");
}
5行目はswitch文の中のcaseの後にif文を使用しています。
%は、割り算の余りを求めます。
関連の記事