弱弱的求教个程序问题
代码如下:
#include <stdio.h>
int main()
{
int m=1,n=0;
switch(m)
{
case 1:
switch(n)
{
case 0:printf("It is a dog\n");break;
case 1:printf("It is a cat");break;
}
case 2:printf("No meaning\n");
}
return 0;
}
为什么结果系
It is a dog
No meaning
的,It is a dog我可以理解,但为什么会有No meaning?????我想不通。
后来在case 2下加了句case 3
case 3:printf("No meaning\n");
结果又多了
It is a dog
No meaning
No meaning
m=1啊,为什么啊还执行其它值的呢?不懂,求大神指教。
[解决办法]
你需要把每个语句段分开看。case标签后面如果不加break;语句就会自动往下执行。
当你进入case 1后,然后输出了It is a dog.接着跳出当前的case后,就是结束了case1 ,但是case1后面没有break,从而继续case 2的代码。
[解决办法]
因为你的case 1没有加break
- C/C++ code
int m=1,n=0; switch(m) { case 1: switch(n) { case 0:printf("It is a dog\n");break; case 1:printf("It is a cat");break; } break; case 2:printf("No meaning\n");break; }
[解决办法]
你外面的case 1没break啊
[解决办法]
- C/C++ code
#include <stdio.h>int main(){ int m=1,n=0; switch(m) { case 1: switch(n) { case 0:printf("It is a dog\n");break; case 1:printf("It is a cat");break; } case 2:printf("No meaning\n"); } return 0;}