为什么a会等于2,b等于1
#include<stdio.h>void main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
#include<stdio.h>
void main()
{
int x=1,y=0,a=0,b=0;
switch(x){
case 1:// x进这个case
switch(y){
case 0:a++;break;//y进这个case
case 1:b++;break;
} //break;如果你加上这行 x就不进下一个case
case 2:a++;b++;break; // x还会进这个case
case 3:a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
你可以把每个case当做一个入口~
打个比方~
比如 和 第二个case成立了。 他就会从第二个case开始,一直往下执行~ 第二个。第三个。第四个。第五个。。。。。
那为什么需要一个break呢?
break 不是必须的~ 你可以认为他是可选项~
再打个比方~
比如 又第二个case成立了~还是往下读 在第二个case的末尾看到了break,那他还会继续往下读吗。答案是不会~ 你可以认为break在switch里面 是用来中止switch的~
页:
[1]