C语言switch case语句的用法(非常详细)
C语言 switch case 语句的一般语法格式如下。
switch( 表达式 )
{
case 常量表达式1:
语句1;
[break;]
case 常量表达式2:
语句 2;
[break;]
…
case 常量表达式n:
语句n;
[break;]
default:
语句 n+1;
}
执行过程:先计算 switch 表达式的值,并逐个与 case 后面的常量表达式的值相比较,当表达式的值与某个常量表达式i的值一致时,则从该 case 后的语句i开始执行,直到遇到 break 语句或 switch 语句的“}”;若表达式与任何常量表达式的值均不一致,则执行 default 后面的语句或执行 switch 结构的后续语句。
请看下面的例子:
switch(x)
{
case 1:
printf("statement 1.\n");
break;
case 2:
printf("statement 2.\n");
break;
default:
printf("default");
}
说明:x 的值与第一个 case 后的常量1一致,就处理它后面的输出语句,然后遇到 break 语句,退出 switch 结构。同样,如果 x 的值为 2,则输出“statement 2.”;如果 x 的值是除了 1 和 2 的其他值,程序则输出“default”,遇到“}”退出 switch 结构。
switch结构的说明如下。
- switch 后面的表达式类型一般为整型、字符型和枚举型,不能为浮点型。
- 常量表达式i仅起语句标号作用,不作求值判断。
- 每个常量表达式的值必须各不相同,没有先后次序。
- 多个 case 语句可以共用一组执行语句,请看下面的例子。
多个 case 语句共用一组执行语句的例子:
switch(x)
{
case 1:
case 2:
printf("statement 2.\n");
break;
default:
printf("");
}
示例
根据一个代表星期几的 0~6 之间的整数,在屏幕上输出它代表的是星期几。#include <stdio.h > int main( ) { int w; /*定义代表星期的整数变量w*/ printf("请输入代表星期的整数(0~6) : ") ; scanf("%d",&w); /*从键盘获取数据赋值给变量w*/ switch(w) /*根据变量w的取值选择执行不同的语句*/ { case 0 : /*当w的值为0时执行下面的语句*/ printf(" It's Sunday .\n"); break ; case 1 : /*当w的值为1时执行下面的语句*/ printf(" It's Monday .\n"); break ; case 2 : /*当w的值为2时执行下面的语句*/ printf(" It's Tuesday .\n"); break ; case 3 : /*当w的值为3时执行下面的语句*/ printf(" It's Wednesday .\n"); break ; case 4 : /*当w的值为4时执行下面的语句*/ printf(" It's Thuesday .\n"); break ; case 5 : /*当w的值为5时执行下面的语句*/ printf(" It's Friday .\n"); break ; case 6 : /*当w的值为6时执行下面的语句*/ printf(" It's Saturday .\n"); break ; default : printf(" Invalid data!\n"); /*当w取别的值时*/ } return 0; }运行结果:
请输入代表星期的整数(0~6) : 6
It's Saturday .
本范例中,首先从键盘输入一个整数赋值给变量 w,根据 w 的取值分别执行不同的 case 语句。例如当为 w 赋值 6 时,执行 case 6 后面的语句:
printf(" It's Saturday .\n");
break ;
从本范例可以看到,switch 语句中的每一个 case 的结尾通常有一个 break 语句,它停止并退出 switch 语句的继续执行,而转向 switch 语句的后续语句,如果没有 break,则顺序执行下一个 case 后的语句。使用 switch 语句比用 if-else 语句简洁得多,可读性也好得多。因此遇到多分支选择的情况,应当尽量选用 switch 语句,避免采用嵌套较深的 if-else 语句。
技巧:case 后面的常量表达式可以是一条语句,也可以是多条语句,甚至可以在 case 后面的语句中再嵌套一个 switch 语句。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。