ゆるゆるプログラミング

・switch文

switch文は、の値によって処理を分岐するものです。その一般的な書き方は、以下のとおりです。

    switch (式 ) {
        case 定数1:
             処理文1
            break;
    
        case 定数2:
             処理文2
            break;
    
           :
    
        case 定数n:
             処理文n
            break;
    
        default:
             処理文
            break;
    }

定数1~nのいずれかと一致したときに、その定数に応じた処理文を実行します。case 定数: ~ break;の間の処理文が実行されます。default:は、どの定数とも一致しなかったときの分岐処理です。これは省略することができます。

式には、byte型/char型short型int型/enum型 (JDK 1.5以降)/String型 (JDK 1.7以降)のいずれかの型を使うことができます。(実数型は使えません)

定数には、変数および計算式は使えません。

次に、違う定数で同じ処理を実行するときのswitch文の書き方を説明します。以下がその例です。

    switch (式 ) {
        case 定数1:
        case 定数2:
             処理文1
            break;
    
        case 定数2:
        case 定数3:
        case 定数4:
             処理文2
            break;
    
           :
    
        case 定数n:
             処理文n
            break;
    
        default:
             処理文
            break;
    }

case 定数を並べることで複数の定数に対して、同じ処理を実行できるようになります。上の例の場合、式が定数1または定数2の場合に処理文1を実行、式が定数3または定数4または定数5の場合に処理文2を実行します。、

ここからは、switch文を使用したサンプルのJavaソースコードで使い方を解説していきます。以下がそのソースコードです。

Switch1.java
001:    public class Switch1 {
002:    	public static void main( String[] args ) {
003:    		int a;
004:    
005:    		a = 2;
006:    
007:    		switch ( a ) {
008:    			case 1:
009:    				System.out.println(  "aの値は1です。" );
010:    				break;
011:    			case 2:
012:    				System.out.println(  "aの値は2です。" );
013:    				break;
014:    			case 3:
015:    				System.out.println(  "aの値は3です。" );
016:    				break;
017:    			default:
018:    				System.out.println(  "aの値は1、2、3ではありません。" );
019:    				break;
020:    		}
021:    	}
022:    }

出力結果

aの値は2です。

005:    		a = 2;

整数型の変数aに2を代入しています。

007:    		switch ( a ) {
008:    			case 1:
009:    				System.out.println(  "aの値は1です。" );
010:    				break;
011:    			case 2:
012:    				System.out.println(  "aの値は2です。" );
013:    				break;
014:    			case 3:
015:    				System.out.println(  "aの値は3です。" );
016:    				break;
017:    			default:
018:    				System.out.println(  "aの値は1、2、3ではありません。" );
019:    				break;
020:    		}

a=2なのでcase 2:のSystem.out.println( "aの値は2です。" );が実行されます。

次のサンプルは、case文を並べた例です。

Switch2.java
001:    public class Switch2 {
002:    	public static void main( String[] args ) {
003:    		int a;
004:    
005:    		a = 4;
006:    
007:    		switch ( a ) {
008:    			case 1:
009:    			case 2:
010:    				System.out.println(  "aの値は1または2です。" );
011:    				break;
012:    			case 3:
013:    			case 4:
014:    			case 6:
015:    				System.out.println(  "aの値は3または4または6です。" );
016:    				break;
017:    
018:    			default:
019:    				System.out.println(  "aの値は1、2、3、4、6以外です。" );
020:    				break;
021:    		}
022:    	}
023:    }

出力結果

aの値は3または4または6です。

005:    		a = 4;

整数型の変数aに4を代入しています。

007:    		switch ( a ) {
008:    			case 1:
009:    			case 2:
010:    				System.out.println(  "aの値は1または2です。" );
011:    				break;
012:    			case 3:
013:    			case 4:
014:    			case 6:
015:    				System.out.println(  "aの値は3または4または6です。" );
016:    				break;
017:    
018:    			default:
019:    				System.out.println(  "aの値は1、2、3、4、6以外です。" );
020:    				break;
021:    		}

a=4なのでcase 4:のときに実行される処理、System.out.println( "aの値は3または4または6です。" );が実行されます。

■関連コンテンツ

if文 条件による処理の分岐に使用するif文について解説
変数について Javaで扱う変数について解説

■新着情報

2017.11.17 N値化 カラー画像をN値化する方法について解説
2017.11.16 最も近い値の取得 指定値に最も近い配列の値を取得する方法を解説
2017.10.02 アルファ値(透過) アルファ値(透過)について

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ