Java switch文のサンプル

Javaのswitch文のサンプルです。条件で処理を分岐する時に使用します。

目次

switch文 switch文
  nullをチェックするサンプル
  breakがない場合(フォールスルー)
  switch文の中でif文を使用する

switch文

switch(条件){
  case 値 :
    処理
    break;
   ・・・
  default:
    処理
    break;
}
  • 条件の値とcaseの値が一致すれば、配下の処理が実行されます。
  • breakでswitch文を抜けます。breakがないと下の判定(case/default)に行ってしまいます。
  • defaultは、条件の値がどのcaseの値にも一致しない時に実行されます。省略可能ですが書いたほうが良いです。
  • JavaSE7から、switch文で文字列の判定もできるようになりました。
    ただし、値がnullの場合、NullPointerException例外が発生します。
    判定をする際は、switch文の前に値がnullでないことを確認したほうがよいです。

switch文のサンプルです。

package test1;

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つめ");
			break;
		}
 	}
}

5行目は、変数aに値をセットしています。
7行目からswitch文が始まります。
11行目のcase "2"は変数aの値と一致するのでその配下の処理が実行されます。
12行目の処理が実行されます。
13行目のbreakでswitch文を抜けます。

nullをチェックするサンプル

switch文の前にnullをチェックするサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {
		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つめ");
				break;
			}
		}
	}
}

5行目は、変数にnullをセットしています。
7行目は、if文でnullかチェックしています。
値がnullでない場合は、10行目のelseからswitch文が実行されます。

breakがない場合(フォールスルー)

breakがない場合のサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {
		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つめ");
			break;
		}
 	}
}

10行目は、breakがありません。
8行目のcase "1"の処理の後、11行目のcase"2"の処理も実行されます。
フォールスルー(fall through/落ちる)と呼ばれます。
breakを書き忘れたのかわかりづらいので使用しないほうが良いです。

switch文の中でif文を使用する

switch文の中でif文を使用するサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {
		int a = 3;

		switch (a){
		case 3:
			if (a % 2 == 0) {
				System.out.println("偶数");
			} else {
				System.out.println("奇数"); // 奇数が出力される
			}
			break;
		default:
			System.out.println("その他");
			break;
		}
 	}
}

9行目はswitch文の中のcaseの後にif文を使用しています。
%は、割り算の余りを求めます。

関連の記事

Java if文のサンプル
Java while文とdo...while文のサンプル
Java 拡張for文のサンプル(break/continue)
Java for文のサンプル(break/continue/ラベル)

△上に戻る