落落 发表于 2012-9-30 01:23:47

为什么IF else 执行了,没有执行后面的switch 语句直接跳走了

为什么IF else 执行了没有执行switch 语句了!直接跳到switch后面的去了,才开始学C想了半天没弄清楚!!{:5_96:}

if( s>= 3000)
{
      c = 12;      .
}
else
{
    c = s/250;      
}
switch(c)      
{
   case 0:    //break 跳出循环
   d = 0;
   break;
case 1:
   d = 2;
   break;
case 2:         
case 3:
       d = 5;
       break;
case 4:
case 5:
case 6:
case 7:
   d = 8;
   break;
case 8:
case 9:
case 10:
case 11:
   d = 10;
    break;
case 12:
   d = 15;
}

C_linux记事 发表于 2012-10-2 01:41:43

你把完整的程序发出来看看

贝壳 发表于 2012-10-2 02:06:41

最后少一个break。
而且,代码没贴全,别人也没法帮你看,

仰望天上的光 发表于 2012-10-2 16:56:01

可能进入的switch的default分支

专属宝兮 发表于 2012-10-4 13:52:37

那么多的case后面都没有语句,为何不直接来个default。简单易懂,不容易出错。

落落 发表于 2019-5-22 22:20:15

7年后...{:10_266:}

bin554385863 发表于 2019-5-22 23:19:26

落落 发表于 2019-5-22 22:20
7年后...

你这个魔鬼,挖坟

Croper 发表于 2019-5-23 00:26:01

落落 发表于 2019-5-22 22:20
7年后...

所以楼主找到答案了吗?
页: [1]
查看完整版本: 为什么IF else 执行了,没有执行后面的switch 语句直接跳走了