switch文
条件分岐を行うには、if文以外にも「switch文」というものがある。
if文は、条件に一致した処理を行うための構文で、switch文は、値に対応した処理を行うための構文である。
switch文では分岐先を示すラベルとして「case」や「default」を用いる。
switch文では 1つの処理に対して複数の 「case」を記述することができる。また「case」のルールとして整数でないといけない。
「default」は一致する定数式がないとき、「default」部分に記述された文を実行する。また「default」部分は省略可能。
(実際に実行)
int i = 1;
switch (i) {
case 0:
// iが0の場合の処理
System.out.println("This is 0");
break; // switch文を抜ける
case 1:
// iが1の場合の処理
System.out.println("This is 1");
break; // switch文を抜ける
default:
// どのcaseにも一致しない場合の処理
System.out.println("This is other");
break; // switch文を抜ける
}
(実行結果)
iが0の場合はThis is 0、iが1の場合はThis is 1、iが3の場合はThis is otherとそれぞれちゃんと実行された。
breakの仕組み
switch文では、値に対応した「case」や「default」の場所に処理が飛ぶ。そして「break」の場所に来るか、switch文の最後の行に来ると、「{ }」から処理を抜けることができる。
そのため、「break」を書かないことによって、複数の値の処理をまとめて書くことができる。
(「break」による複数の値の処理をまとめて書いたときの実行例)
int i = 1;
switch (i) {
case 0:
case 1:
case 2:
// iが0、1、2の場合の処理
System.out.println("This is 0, 1, 2");
break; // breakなのでswitch文を抜ける
default:
// どのcaseにも一致しない場合の処理
System.out.println("This is other");
// 最後の行なのでswitch文を抜ける
}
(実行結果)
iが0、1、2の場合はThis is 0, 1, 2、iが3の場合はThis is otherとそれぞれ実行された。