首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-08-15 
弱弱的求教个程序问题代码如下:#include stdio.hint main(){int m1,n0switch(m){case 1:switch(n){ca

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

热点排行