C语言switch case语句的用法(小白必读)
虽然 C语言没有限制 if else 语句能够处理的分支数量,但当分支过多时,用 if else 语句处理会不太方便,而且容易出现 if 和 else 配对出错的情况。
相对而言,switch case 语句的语法更容易读写。
switch case 语句的格式如下:
【实例】简易计算器,先输入 +、−、*、/ 4个运算符中的一个,然后输入两个浮点数,最后输出计算结果。代码如下:

图 1 程序的执行流程
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
相对而言,switch case 语句的语法更容易读写。
switch case 语句的格式如下:
switch(expression) { case constant1: //分支 语句; break; case constant2: //分支 语句; break; ... default: //默认语句 语句; }switch case 的具体工作原理如下:
- switch 语句中的 expression 是一个常量表达式,必须是一个整型、字符型或枚举类型。
- 在一个 switch 语句中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
- case 语句中的 constant 必须与 switch 语句中的 expression 具有相同的数据类型,且必须是一个常量或字符量。
- 当被判断的 expression 等于 case 语句中的 constant 时,case 语句后面的语句将被执行,直到遇到 break 语句为止。
- 当遇到 break 语句时,switch case 终止,控制流继续执行 switch case 后面的代码。
- 不是每一个 case 语句都需要包含 break 语句,如果 case 语句不包含 break 语句,控制流将会继续执行后续的 case 语句,直到遇到 break 语句为止。
- 一个 switch 语句可以有一个可选的 default case 语句,出现在 switch 语句的结尾。default case 语句可用于在上面所有 case 语句都不为真时执行一个任务。default case 语句中的 break 语句不是必需的。
【实例】简易计算器,先输入 +、−、*、/ 4个运算符中的一个,然后输入两个浮点数,最后输出计算结果。代码如下:
#include <stdio.h> int main() { char operator; double n1, n2; printf("输入一个运算符 (+, -, *, /): "); scanf("%c", &operator); printf("输入两个操作数: "); scanf("%lf %lf", &n1, &n2); switch (operator) { case '+': printf("%.1lf + %.1lf = %.1lf", n1, n2, n1 + n2); break; case '-': printf("%.1lf - %.1lf = %.1lf", n1, n2, n1 - n2); break; case '*': printf("%.1lf * %.1lf = %.1lf", n1, n2, n1 * n2); break; case '/': printf("%.1lf / %.1lf = %.1lf", n1, n2, n1 / n2); break; // 没有匹配到任何运算符( +, -, *, /) default: printf("错误! 运算符不正确"); } return 0; }编译运行,可得到以下类似结果:
输入一个运算符(+, -, *,/): +
输入两个操作数:10 20
10.0+20.0=30.0

图 1 程序的执行流程
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。