switch文について
switch文とは?
Javaには条件分岐処理というシステムがあります。
代表的な文として「if-else文」があります。
今回は、もう一つの条件分岐処理の「switch文」について説明致します。
switch文の構造
以下のコードをご覧ください。
switch(式){
case 定数1: //式の結果が定数1と一致したとき、以下の処理が行われる。
処理文1;
case 定数2: //式の結果が定数2と一致したとき、以下の処理が行われる。
処理文2;
default: //上記どのcaseにも一致しなかったとき、以下の処理文が実行される。
defaultの処理文;
}
switch文は、式を評価した結果とcaseで指定した定数とを比較し、
一致した場合にそのcase以降に記述した処理文を実行します。
switch文のデータ型
switch文の式の評価は、データ型として
・char
・byte
・short
・int(およびそのラッパークラス)
・enum
・String
のいずれかの値である必要があります。
それ以外の型が指定されるとコンパイルエラーとなります。
また、式の評価がnullの場合、コンパイルは成功しますが、実行時にNullPointerException例外が
発生します。
break文
case文で式を評価しtrueになった場合、case以下の処理が全て行われてしまいます。
もしswitch文を抜けたい場合はbreak文を記述します。
case 定数1:
処理文1;
break;
case 定数2:
処理文2;
このコードの場合、もし「case 定数1」でtrueになった場合、処理文1が実行され、「case 定数2」の式は
評価されず、switch文を抜ける流れとなります。
まとめ
・switch文は、式を評価した結果とcaseで指定した定数とを比較し、
一致した場合にそのcase以降に記述した処理文を実行する。
・switch文の式の評価は、データ型として【char,byte,short,intおよびそのラッパークラス),enum,String】
のいずれかの値である必要がある。
・switch文を抜けたい場合はbreak文を記述する。