C言語switch文完全マスター:構文、フロー、実践例
C言語switch文完全マスター
このチュートリアルでは、ハンズオンの電卓例を通じて、クリーンで効率的なC言語switch文の作り方を学びます。
switch構造を使うと、複数の選択肢から1つのコードブロックを実行できます。if…else ifチェーンでも可能ですが、switchは特に単一の式に基づく決定の場合、より明確な構文と高速な可読性を提供します。
switch-case構文
switch (式) {
case 定数1:
// 文
break;
case 定数2:
// 文
break;
/* … */
default:
// デフォルト文
}
動作原理
- 式は1回評価され、各caseラベルと比較される
- 一致が見つかると、対応するブロックが
break(またはswitchの終わり)に達するまで実行される - 一致しない場合、オプションの
defaultブロックが実行される
重要なポイント
breakを省略するとフォールスルーが発生:後続のcaseも実行されるdefault節はオプションだが、エラーハンドリングのために強く推奨
switch文のフローチャート

例: シンプルな電卓
#include <stdio.h>
int main(void) {
char operation;
double n1, n2;
printf("演算子を入力 (+, -, *, /): ");
scanf("%c", &operation);
printf("2つのオペランドを入力: ");
scanf("%lf %lf", &n1, &n2);
switch (operation) {
case '+':
printf("%.1lf + %.1lf = %.1lf\n", n1, n2, n1 + n2);
break;
case '-':
printf("%.1lf - %.1lf = %.1lf\n", n1, n2, n1 - n2);
break;
case '*':
printf("%.1lf * %.1lf = %.1lf\n", n1, n2, n1 * n2);
break;
case '/':
printf("%.1lf / %.1lf = %.1lf\n", n1, n2, n1 / n2);
break;
default:
printf("Error! operator is not correct\n");
}
return 0;
}
出力例
演算子を入力 (+, -, *, /): - 2つのオペランドを入力: 32.5 12.4 32.5 - 12.4 = 20.1
ユーザーが-を入力すると、プログラムは対応するcaseにジャンプし、減算を実行、breakでswitchを抜けます。演算子が無効な場合、default節がユーザーに警告します。
C言語