您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。即使内部和外部 switch 的 case 常量包含共同的值,也没有矛盾。
语法
C 语言中 嵌套 switch 语句的语法:
实例
switch(ch1) {
case 'A':
printf("这个 A 是外部 switch 的一部分" );
switch(ch2) {
case 'A':
printf("这个 A 是内部 switch 的一部分" );
break;
case 'B': /* 内部 B case 代码 */
}
break;
case 'B': /* 外部 B case 代码 */
}
实例
实例
#include <stdio.h>
int main ()
{
/* 局部变量定义 */
int a = 100;
int b = 200;
switch(a) {
case 100:
printf("这是外部 switch 的一部分\n");
switch(b) {
case 200:
printf("这是内部 switch 的一部分\n");
}
}
printf("a 的准确值是 %d\n", a );
printf("b 的准确值是 %d\n", b );
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
这是外部 switch 的一部分 这是内部 switch 的一部分 a 的准确值是 100 b 的准确值是 200
例子:
switch 语句嵌套,测试满足工龄奖励小程序
实例
#include<stdio.h>
int main(void)
{
char sex;
int age ;
printf("请输入你的性别简称!男(M),女(F)\n");
scanf_s("%c", &sex);
switch (sex)
{
case 'M':
case 'm':
printf("你的性别为“男”请你进入测试!\n");
printf("请输入你的工龄!\n");
scanf_s("%2d",&age);
switch (age)
{
case 5:
printf("奖励iphone一台!!\n");
break;
case 10:
printf("奖励汽车一辆!!\n");
break;
case 15:
printf("奖励小楼一栋!!\n");
break;
default:
printf("抱歉,未满足奖励条件或者超出工龄!!\n");
break;
}
break;
case 'F':
case 'f':
printf("你的性别为“女”请你进入测试!\n");
printf("请出入你的工龄!\n");
scanf_s("%2d",&age);
switch (age)
{
case 5:
printf("奖励iphone一台!\n");
break;
case 10:
printf("奖励名牌化妆品一套!\n");
break;
case 15:
printf("奖励爱马仕包一个!\n");
break;
default:
printf("抱歉, 未满足奖励条件或者超出工龄!!\n");
break;
}
break;
}
return 0;
}