switch文

switch文

if文以外の条件分岐のswitchについて説明します。

switchを使うことで、変数の値に応じた命令をきれいに記述することができます。

 

switchは以下のように使用します。

switch(変数){
  case 定数1:
    命令1;
    break;
  case 定数2:
    命令2;
    break;
  case 定数3:
    命令3;
    break;
  default:
    命令4;
}

変数の値が

  1. 定数1なら、case 定数1:から
  2. 定数2なら、case 定数2:から
  3. 定数3なら、case 定数3:から
  4. それ以外なら、default:から

始まります。そして、break文によりswitchの括弧から抜けます。

もし、breakがないと、そのまま下の命令を続けます。

例えば、

switch(変数){
  case 定数1:
    命令1;
  case 定数2:
    命令2;
  case 定数3:
    命令3;
  default:
    命令4;
}

なら変数が定数1のとき、命令1から4すべて実行されます。

swichを使ったプログラム例

説明のため1から3までの数字を入力したら、その読み方を出力するプログラムをつくります。

たとえば 2と入力したら「に」と出力されます。

プログラムは以下のようになります。

#include <stdio.h>
int main(void)
{
	int i;
	printf("1から3までの数字を入力してください:");
	scanf("%d",&i);
	switch(i){
		case 1:
			printf("いち\n");
			break;
		case 2:
			printf("に\n");
			break;
		case 3:
			printf("さん\n");
			break;
		default:
			printf("その他です。\n");
	}
	return 0;
}

実行すると以下のようになります。

【実行例1】

1から3までの数字を入力してください:1
いち

【実行例2】

1から3までの数字を入力してください:2

【実行例3】

1から3までの数字を入力してください:3
さん

【実行例4】

1から3までの数字を入力してください:4
その他です。

実行例からわかるように、

  1. 1を入力したら「いち」
  2. 2を入力したら「に」
  3. 3を入力したら「さん」
  4. それ以外なら「その他です。」

が出力されます。

 

switchはifでの置き換え可能ですが、switchの方がプログラムが見やすくなる場合があります。

場合に応じて使い分けましょう。

著者:安井 真人(やすい まさと)