C 言語 | フロー制御 | switch 文
switch 文は、1 つの値に応じて複数の処理から 1 つを選択する。
複数の分岐
多くの定数値で分岐する場合、長い if else if は読みにくい。そこで switch を使用する。
switch (式) {
case 定数:
文
break;
default:
デフォルトの文
}
switch は式を評価し、一致する case ラベルへ移動する。case の値は定数であり、重複できない。どの case にも一致しない場合は default を実行する。
break がなければ、続くラベルの文も実行される。この動作をフォールスルーと呼ぶ。
switch (0) {
case 0:
printf("case 0");
break;
case 1:
printf("case 1");
break;
default:
printf("default");
}
case と default は省略できる。一致するラベルがなく default もない場合は、何も実行しない。
コード 1
#include <stdio.h>
int main() {
int selected;
printf("0=最初, 1=次, 2=最後 >");
scanf("%d", &selected);
switch(selected) {
case 0:
printf("最初の選択です。\n");
break;
case 1:
printf("2 番目の選択です。\n");
break;
case 2:
printf("3 番目の選択です。\n");
break;
default:
printf("正しい番号を入力してください。\n");
}
return 0;
}
case 'A': のように文字定数も指定できる。