在switch中进行完嵌套语句后,不论下一语句的条件是什么都会进行。但是没有嵌套的时候,就会按照满足条件的语句进行。
#include <cstdio>
int main(){
int a=1,b=0;
switch(a)
{
case 1:switch(b){
case 0:printf("**0**");break;
case 1:printf("**1**");break;
}
case 2:printf("**2**");break;
case 3:printf("**3**");break;
}
printf("\n");
int x=1;
switch(x)
{
case 0:printf("**0**");break;
case 1:printf("**1**");break;
case 2:printf("**2**");break;
}
return 0;
}
**0****2**
**1**
为什么switch嵌套使用时嵌套条件进行完成后会直接进行下一case语句
这没break跳出
case 1部分末尾漏了break啊。如下在第12行增加了break;
#include <cstdio>
int main(){
int a=1,b=0;
switch(a)
{
case 1:
switch(b)
{
case 0:printf("**0**");break;
case 1:printf("**1**");break;
}
break;
case 2:printf("**2**");break;
case 3:printf("**3**");break;
}
printf("\n");
int x=1;
switch(x)
{
case 0:printf("**0**");break;
case 1:printf("**1**");break;
case 2:printf("**2**");break;
}
return 0;
}