C 语言 switch 语句完全指南:语法、流程与计算器实例
C 语言 switch 语句完全指南
本教程通过动手计算器示例,教你编写清晰高效的 C 语言 switch 语句。
switch 结构从多个备选块中选择一个执行。虽可用 if…else if 链,但 switch 语法更清晰、可读性更强,尤其适合基于单一表达式决策的场景。
Switch-Case 语法
switch (expression) {
case constant1:
// 语句
break;
case constant2:
// 语句
break;
/* ... */
default:
// 默认语句
}
工作原理
- expression 求值一次,与各 case 标签比较。
- 匹配时执行对应块,直到遇到
break或switch结束。 - 无匹配时执行可选
default块。
关键点
- 省略
break导致贯穿:后续 case 继续执行。 default子句可选但强烈建议保留,用于错误处理。
Switch 语句流程图

示例:简单计算器
#include <stdio.h>
int main(void) {
char operation;
double n1, n2;
printf("Enter an operator (+, -, *, /): ");
scanf("%c", &operation);
printf("Enter two operands: ");
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;
}
输出示例
Enter an operator (+, -, *, /): - Enter two operands: 32.5 12.4 32.5 - 12.4 = 20.1
用户输入 -,程序跳转对应 case 执行减法,break 退出 switch。无效运算符触发 default 提示错误。
C语言
- 开关控制电路实战:从原理图到面包板的基础电路构建
- 续流二极管实验:用霓虹灯抑制感性尖峰
- 理解电气开关:类型、功能与应用
- 消除机械开关触点抖动
- 万用表全解析:从模拟到数字的进化指南
- 掌握 C# switch 语句:语法、示例与最佳实践
- C# break 语句:用法、时机与实战示例
- 掌握 C# continue 语句:高效跳过循环迭代的实战指南
- 掌握 C++ break 语句:跳出循环与 switch 的核心控制流
- 掌握 C++ switch-case 语句:语法、流程与计算器实战案例
- 掌握 C++ switch-case:语法、用法与实战示例
- C 语言基础语法精通:Token、分号、注释与标识符规范