#include <stdio.h>
int main() {
int n = 1;
int m = 2;
switch (n)
{
case 1:m++;
case 2:n++;
case 3:
switch (n)//在switch语句里面又嵌套了一个switch
{
case 1:n++;
case 2:m++; n++;
break;
}
case 4:m++;
break;
default:
break;
}
printf("m=%d,n=%d\n",m, n);
return 0;
}
运行结果
我们需要注意的是,在switch语句中,case如果没有break中断跳出 ,那么程序会按照switch(n)中的n所表示的数字进入case n运算
switch语句的一些形式(注意整数表达式)
回到程序中,switch(n)表示程序接下来会从case n进入分支计算,即使进入的分支不同,没有break那么case就需要一直运算下去,有n=1 ,所以语句从case1进去运行,m变为3,继续进行case2,n变为2,再进入case3,此时进入一个嵌套switch语句,n此时为2,所以从case2进入,m=4,n=3,break 结束的是这个嵌套switch,还没有从外部的switch跳出,进入case4,此时m=5;而嵌套语句中的case1没有执行,n还是等于3