分岐とはプログラム言語が、開発者が実現したい「処理」内の条件による判定処理を表現するために
if文と共に用意された最も基本的な構文の1つです。
switch (
判定条件となる変数 ) {
case
変数の値A:
変数が変数の値Aに一致したときの処理;
break;
case
変数の値B:
変数が変数の値Bに一致したときの処理;
break;
default:
変数が変数の値A及びBに該当しないときの処理;
break;
}
変数の型は、プリミティブ型のbyte,short,char,int及びオブジェクト型のString,Enum,Byte,Short,Charcter,Integerが利用できます。
case句の表現する値は、変数の型と同じです。
int型ならば case 1:と記述し、 char型なら case 'a': 、String型ならば case "hoge": というように型を合わせます。
ちなみに、String型が利用できるようになったのは、Java7からです。
case
句は、変数の型の範囲以内であれば、複数定義が可能です。
if文のelse if を複数記述するケースにおける有効な代替文法です。
String型のswitch文のサンプル
String confirmCode = "01";
String labelValue = "";
switch ( confirmCode ) {
case "01" :
labelValue = "";
break;
case "02" :
labelValue = "申請中";
break;
case "03" :
labelValue = "申請受付";
break;
case "04" :
labelValue = "承認";
break;
case "05" :
labelValue = "棄却";
break;
default :
labelValue = null;
break;
}
また、case句を纏めて同一の処理を実行することも可能です。
文字列のコード値によって、処理を切り分ける例
String confirmCode = "01";
switch ( confirmCode ) {
case "01" :
initProcess();
break;
case "02" :
case "03" :
orderProcess();
break;
case "04" :
case "05" :
approvalProcess();
break;
default :
errorCdProcess();
break;
}
このようにbreak句によって、switchの評価式からswitch処理を終了します。
case句の直後にステートメントを記載できますが、保守性の面から改行してステートメントを記載します。
default句は省略可能ですが、デフォルト値の設定や想定外の値時にエラー処理の実行などを記載するのが一般的です。