【Java】開始処理位置を切り替える条件分岐switch文

switch文は処理を切り替えることができます。
ifとの違いは条件によって分岐されるではなく条件式が値に一致するかどうかという単純なもの。

switch文の構文

switch(式){
case 値1:
    処理1;
    break;
case 値2:
    処理2;
    break;
case 値3:
    処理3;
    break;
default:
    その他の処理; }

・ 式に代入できる型は「byte」,「short」,「int」,「char」のみ
・ 式の値によって処理の開始位置が決まる
breakで{ }を抜ける

サンプルコード

package test;

public class Sample {

	public static void main(String[] args) {
		int num = Integer.parseInt(args[0]);
	
		switch(num){
        case 1:
        	System.out.println("週1回コース:7000円");   
            break;
        case 2:
            System.out.println("週2回コース:8000円");  
            break;
        case 3:
            System.out.println("週3回コース:9000円");   
            break;
        default:
        	System.out.println("範囲外の数値が入力されました!");
            System.out.println("週1回コース:1");
            System.out.println("週2回コース:2");
            System.out.println("週3回コース:3");
            System.out.println("の数値から選択してください。");
        }
		//switch文を抜けたのを確認するための処理
		System.out.println("新規ご入会の場合入会料5000円を別途申し受けます。");
    }
}

コンソールから1を入力したときの実行結果

週1回コース:7000円
新規ご入会の場合入会料5000円を別途申し受けます。

出力結果を見てわかるようにsum変数(処理)が1だったら
1の結果が実行され2と3の処理はは飛ばされswitch文を抜けた後の最後処理が実行されています。

コンソールから4を入力したときの実行結果

範囲外の数値が入力されました!
週1回コース:1
週2回コース:2
週3回コース:3
の数値を入力してください。 新規ご入会の場合入会料5000円を別途申し受けます。

処理4の場合は1~3にに該当しないためdefault(その他の処理)とswitch文を抜けた後の処理が実行されています。

複数の処理を実行したいとき

breakを記述しなければ、複数の処理を実行できます。

試しにbreakを外して実行してみます。

package test;

public class Sample {

	public static void main(String[] args) {
		int num = Integer.parseInt(args[0]);
	
		switch(num){
        case 1:
        	System.out.println("週1回コース:7000円");   
        case 2:
            System.out.println("週2回コース:8000円");  
        case 3:
            System.out.println("週3回コース:9000円");   
            break;
        default:
        	System.out.println("範囲外の数値が入力されました!");
            System.out.println("週1回コース:1");
            System.out.println("週2回コース:2");
            System.out.println("週3回コース:3");
            System.out.println("の数値から選択してください。");
        }
		//switch文を抜けたのを確認するための処理
		System.out.println("新規ご入会の場合入会料5000円を別途申し受けます。");
    }
}

コンソールから1を入力した場合の実行結果

週1回コース:7000円
週2回コース:8000円
週3回コース:9000円
新規ご入会の場合入会料5000円を別途申し受けます。

処理1と処理2が実行され最後のswitch文を抜けた後の処理が実行されています。

コンソールから2を入力した場合の実行結果

週2回コース:8000円
週3回コース:9000円
新規ご入会の場合入会料5000円を別途申し受けます。

処理1が飛ばされ処理2~3と最後のswitch文を抜けた後の処理が実行されています。

にほんブログ村 IT技術ブログ IT技術メモへ

スポンサーリンク
スポンサーリンク
SNSフォローボタン

フォローする

シェアする

  • このエントリーをはてなブックマークに追加
スポンサーリンク
スポンサーリンク