はじめに
前回の記事では、ループを中断するbreak文、ループ処理の途中で、残りの処理をスキップして次のループ処理に移るcontinue文について紹介しました。
今回の記事では、switch文を使った条件分岐について紹介します。
switch文を使った条件分岐
switch文とは、if文と同じように条件分岐を行う制御文です。if文との違いは、if文はelse-if文を使うことで複数の条件式を書くことができますが、switch文では条件式は1つです。
1つの式に対して、式の値が case のどれにあてはまるか確認します。あてはまる case があれば、その処理を実行し、caseのどれにもあてはまらないときは、defaultがある場合、defaultの処理を実行します。(※defaultは書かなくてもよい)
分岐処理が多くなると if文では読みにくくなるため、switch文を使うことで処理を簡潔にすることができます。
switch文の書き方は次のとおりです。
switch文の書き方
switch ( 式 )
{
case 値1
// 「式 = 値1」のときに実行される処理
break;
case 値2:
// 「式 = 値2」のときに実行される処理
break;
default:
// 式の値が上記のどれにも一致しないときに実行される処理
break;
}
スポンサーリンク
switch文の使用例
それでは、実際にプログラムでswitch文を使用した条件分岐の例を紹介します。
次の例では、変数「value」の値によってswitch文で処理を分岐しています。
[switch文の例]
public class SwitchSample {
public static void main(String[] args) {
String value = "01";
switch (value) {
case "01":
System.out.println("01の処理");
break;
case "02":
System.out.println("02の処理");
break;
default:
System.out.println("デフォルトの処理");
break;
}
}
}
[実行結果]
01の処理
上記のソースコードの処理の流れは次のとおりです。
処理の流れ
- switch文開始
- 式(value)の値が case のどれにあてはまるか確認する
- case "01"と一致するので、case "01"の処理を行う
- breakがあるので、switch文終了
switch文の注意点
switch文を書くときに気をつけることは break文を忘れずに記述することです。break文を書き忘れると、一致したcase以降の処理をすべて実行してしまいます。
例えば、次のようなbreak文のないswitch文があるとします。
変数「value」の値はcase "02"に一致しているので、case "02"の処理を実行します。しかし、case "02"の処理にはbreak文がないので switch文は終了せず、そのまま case "02"の下に記述されている defaultの処理を実行します。
[break文を書いてない場合の例]
public class SwitchNoBreakSample {
public static void main(String[] args) {
String value = "02";
switch (value) {
case "01":
System.out.println("01の処理");
case "02":
System.out.println("02の処理");
default:
System.out.println("デフォルトの処理");
}
}
}
[実行結果]
02の処理
デフォルトの処理
上記のソースコードの処理の流れは次のとおりです。
処理の流れ
- switch文開始
- 式(value)の値が case のどれにあてはまるか確認する
- case "02"と一致するので、case "02"の処理を行う
- break文がないので、処理を継続しcase "02"の下にあるdefaultの処理を行う
- defaultの下には処理がないので、switch文終了
終わりに
本記事では、switch文を使った条件分岐について紹介しました。
次回の記事では、Javaのクラスについて紹介します。
次回の記事