switch文
2012年11月24日:C言語
if文以外の条件分岐のswitchについて説明します。
switchを使うことで、変数の値に応じた命令をきれいに記述することができます。
switchは以下のように使用します。
switch(変数){
case 定数1:
命令1;
break;
case 定数2:
命令2;
break;
case 定数3:
命令3;
break;
default:
命令4;
}
case 定数1:
命令1;
break;
case 定数2:
命令2;
break;
case 定数3:
命令3;
break;
default:
命令4;
}
変数の値が
- 定数1なら、case 定数1:から
- 定数2なら、case 定数2:から
- 定数3なら、case 定数3:から
- それ以外なら、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を入力したら「いち」
- 2を入力したら「に」
- 3を入力したら「さん」
- それ以外なら「その他です。」
が出力されます。
switchはifでの置き換え可能ですが、switchの方がプログラムが見やすくなる場合があります。
場合に応じて使い分けましょう。
著者:安井 真人(やすい まさと)
@yasui_masatoさんをフォロー