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

看看这个switch(),该如何处理

2012-02-09 
看看这个switch()#include stdio.hmain(){charkinti,sum2for(i1i 3i++){scanf( %c ,&k)switch

看看这个switch()
#include <stdio.h>
main()
{
    char   k;
      int   i,sum=2;
    for(i=1;i <3;i++)
    {
        scanf( "%c ",&k);
        switch(k)
        {
              case   '0 ':sum++;
              case   '1 ':sum+=3;
        }

    }
  printf( "%d ",sum);
      getch();
}

敲入01回车后为什么是9?注意01中没有空格.请达人留下正解!


[解决办法]
scanf( "%c ",&k);
switch(k)
{
case '0 ':sum++; // 因为输入0时sum++:sum 为3, 此时因为没有break语句,所以继续执行下一句的sum += 3: sum为6.
case '1 ':sum+=3; // 输入1是,执行这一句sum += 3: sum 为9,for循环结束.
}

如果想每输入一个只执行一外语句,那么就在每个条件后都加上一句break;如下:
scanf( "%c ",&k);
switch(k)
{
case '0 ':sum++; break;
case '1 ':sum+=3; break;
}

热点排行