关于c语言的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 00:36:51
int n=0;
switch(1)
{ case1:
switch(2)
{ case2:n++;break;
case3:n++;
}
case2:n++;break;
}
printf("n=%d\n",n);
这个程序的结果是n=2,具体讲解一下~

看错了

switch(1)
运行case1
switch(2)
运行case 2: n++; n=1
然后break,跳出switch(2)
但case 1完成后没有break,
会继续执行case 2,n++; n=2
break
print n=2

如果将程序改为:
int n=0;
switch(1)
{ case1:
switch(2)
{ case2:n++;break;
case3:n++;
} break;//此处加break
case2:n++;break;
}
printf("n=%d\n",n);

n就为1