Javaでswitch~case文を使った条件分岐処理を紹介します。
書式
switch(判定する変数)
{
case 条件1:
...(処理);
break;
case 条件2:
...(処理);
break;
...
default:
...(処理);
break;
}
「判定する変数」の値をcase文で判定し、条件と一致する場合はcaseに続く処理を実行します。どの条件にも当てはまらなかった場合は、default:ブロック内の処理を実行します。
javaではcaseブロックの中にbreak,returnといったswitch文から抜ける記述は必須ではありません。(C#では必須)
break,returnがない場合は次のcase文を実行する動作になります(下記コード例参照)。
また、判定する変数にはbyte、short、char、int型を指定できます。C#ではString型を指定できますがJavaではString型は指定できません。
コード例
package javaapplicationswitch;
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int a = 3;
switch (a) {
case 0:
System.out.println("0です");
break;
case 1:
System.out.println("1です");
break;
case 2:
System.out.println("2です");
break;
case 3:
System.out.println("3です");
break;
default:
System.out.println("それ以外です");
break;
}
}
}
実行結果
3です
break;を記述しない場合
コード例
package javaapplicationswitch2;
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int a = 1;
switch (a) {
case 0:
System.out.println("0です");
case 1:
System.out.println("1です");
case 2:
System.out.println("2です");
case 3:
System.out.println("3です");
default:
System.out.println("それ以外です");
}
}
}
実行結果
1です
2です
3です
それ以外です
コンパイルエラーとなる例
switch文の判定変数にString型は指定できないため、下記のコードはコンパイルエラーになります。
public static void main(String[] args) {
String str = "Penguin";
switch (str) {
case "Whale":
System.out.println("クジラです");
break;
case "Duck":
System.out.println("アヒルです");
break;
case "Penguin":
System.out.println("ペンギンです");
break;
default:
System.out.println("それ以外です");
break;
}
}
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2023-12-26
作成日: 2011-02-14