代码1
#include <stdio.h>
#define three 3
int main()
{
int a = 2;
switch (a)
{
case 1:
printf("case1\n");
a++;
break;
case 2:
printf("case2\n");
a++;
case 3:
printf("case3\n");
default:
printf("default\n");
}
return 0;
}
如上代码中,运行结果是
case2
case3
default
C:\Users\87802\Documents\code\test\test\x64\Debug\test.exe (进程 11004)已退出,代码为 0。
按任意键关闭此窗口. . .
代码二
#include <stdio.h>
#define three 3
int main()
{
int a = 2;
switch (a)
{
case 1:
printf("case1\n");
a++;
break;
case 2:
printf("case2\n");
a++;
case 3:
printf("case3\n");
default:
printf("default\n");
case 4:
printf("case4\n");
}
return 0;
}
运行结果:
case2
case3
default
case4
C:\Users\87802\Documents\code\test\test\x64\Debug\test.exe (进程 1812)已退出,代码为 0。
按任意键关闭此窗口. . .
代码3
#include<stdio.h>
int main()
{
int a = 10;
switch (a)
{
default:
printf("default\n");
case 4:
printf("4\n");
case 6:
printf("6\n");
case 7:
printf("7\n");
break;
case 8:
printf("8\n");
}
}
结果
default
4
6
7
C:\Users\87802\Documents\code\2024\test_5_9\Debug\test_5_9.exe (进程 5172)已退出,代码为 0。
按任意键关闭此窗口. . .
结论
因此:
1. case语句或者default是用来寻找执行起点的,break语句是用来执行终点的。switch执行所有从第一个匹配的case,或没defualt(没有case可以匹配)到break中止之间的语句,因此建议加上break。
2. switch不允许有两个相同常量值的case
3. case顺序无所谓,default甚至可以在case之前,但是只能允许存在一个default。
、
答案选c