读书人

弱弱的求教个程序有关问题

发布时间: 2012-08-15 16:57:17 作者: rapoo

弱弱的求教个程序问题
代码如下:
#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;} 

读书人网 >C语言

热点推荐