例えば変数aが 1であれば 1に対応した処理を、2であれば 2に対応した処理を・・・と、これが 3回くらいなら上で述べたifで対応して良いと思いますが、それが 10回にもなった場合は考え物です、、、そのような分岐を多岐分岐といって Javaには
switchと言う多岐分岐命令が提供されています。
[ 表記法 ]
switch(a){
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
case 4:
System.out.println(4);
break;
case 5:
System.out.println(5);
break;
default:
System.out.println("Default");
}
この命令の引数に比較する変数や式を指定します。
switch(a)
定数式を指定します。 ( 下記場合変数aが1であれば ) 上から順に条件を検索していき条件が満たされる定数式になった場合caseに続く命令が実行されます。
case 1:
このswitch文を抜けます。 breakを指定しないと次の命令も、そのまた次の命令も実行されてしまいますので忘れないように注意して下さい。忘れた場合は次の例みたいになってしまいます。
※ただしプログラムによってはわざと記入しないようにする場合もあります。
break;
[ break文を忘れた時の例 ]
switch(a){
case 1:
System.out.println(1);
case 2:
System.out.println(2);
case 3:
System.out.println(3);
case 4:
System.out.println(4);
case 5:
System.out.println(5);
default:
System.out.println("Default");
}
上記コードでは break が設定されていないため、変数 a が 1 だった場合、case 1 から default までの全てのステートメントを実行してしまい、下記のように [ 12345Default ] を表示します。
[ 出力結果 ]
12345Default