黑马程序员技术交流社区

标题: switch语句中case的作用 [打印本页]

作者: luoleiheima    时间: 2015-7-14 21:42
标题: switch语句中case的作用

#include<stdio.h>
int main ()
{        
int a=10;
        switch(a)
        {
                case 10:
                        printf("A\n");
                        
                case 5:
                        printf("B\n");
                        break;
                case 0:
                        printf("C\n");
                        break;
               
        default:
                        printf("D\n");
                        break;
        }
        
  return 0;
}


问:为什么case 10;中,去掉break,执行的结果是A B,而不是A D呢,10!=5,应该不会进入执行输出B的操作啊
作者: 禾叶青青    时间: 2015-7-15 00:20
学习了,赞一个
作者: 小郑    时间: 2015-7-15 00:58
加油。。。。。。。。
作者: 杨鸿    时间: 2015-7-15 09:27
一旦case与switch 判断条件匹配,就会一直执行,知道遇到break,输出是A  B。后面的没有执行
作者: 562413895@qq.co    时间: 2015-7-16 08:11
因为你的case 10部分没有break语句,故当a=10时,执行case 10,输出A,再往下执行case 5,输出B,然后break跳出switch语句
作者: luoleiheima    时间: 2015-7-16 08:23
多谢各位大神的指点……
作者: cjhsf051223    时间: 2015-7-16 08:27
这是case的一个穿透问题,因为在执行case10语句后,没有遇到break,所以没有跳出switch结构,直到遇到下一个break
作者: WPeng    时间: 2015-7-16 16:37
因为你在case 5:之后使用了break。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2