① 不加结束break时 ,输出的情况:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期1\n");
case 2:
printf("星期2\n");
case 3:
printf("星期3\n");
case 4:
printf("星期4\n");
case 5:
printf("星期5\n");
case 6:
printf("星期6\n");
}
return 0;
}
结果:输入3,从3进入,没有停止
②需求:1.输入1-5,输出的是“weekday";2.输入6-7,输出“weekend"
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
default:
printf("选择错误\n");
break;
}
return 0;
}
③实例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:m++;
case 2:n++;
case 3:
switch (n)
{
case 1:n++;
case 2:m++; n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m=%d,n=%d\n", m, n);
return 0;
}
起初:n=1,m=2;
从case 1进入,执行m++.结果:n=1,m=3;
没有break,接着执行case2,执行n++.结果:n=2,m=3;
没有break,接着执行case3,进入嵌套switch语句,此时n=2,从case2进入,执行m++,n++;
结果:n=3,m=4;有break,退出嵌套switch;
外部switch没有break,接着执行case4,执行m++.结果:n+3,m=5;
有break结束外部switch;