请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

猿媛之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3329|回复: 0

(C/C++)switch语句中的case结尾是否必须添加break语句

[复制链接]

44

主题

48

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2016-1-17 22:53:05 | 显示全部楼层 |阅读模式
    一般必须在case语句结尾添加break语句。因为一旦通过switch语句确定了入口点,从入口点的case语句开始一直往下执行,除非遇到关键字break,否则会执行满足这个case之后的其他case语句,直到switch结束或者遇到break为止。如果在switch中省略了break语句,那么匹配的case值后的所有情况(包括default情况)都会被执行。
    程序代码如下所示:
  1. <font size="3">#include <stdio.h >

  2. int main( )
  3. {
  4.              int i;
  5.              for(i=0;i<3;i++)
  6.              {
  7.                              switch (i)
  8.                              {
  9.                                              case 0:
  10.                                                              printf("%d\n",i);
  11.                                              case 2:
  12.                                                              printf("%d\n",i);
  13.                                              default :
  14.                                                              printf("%d\n",i);
  15.                              }
  16.              }
  17.              return 0;
  18. }</font>
复制代码
    输出为
0
0
0
1
2
2
        case 0的时候执行3次打印case 1的时候执行一次defalutcase 2的时候执行两次打印。如果将case 2后面添加break语句,则最后输出为0012,因为此时case 0 执行两次,case1执行一次defalutcase 2执行一次。
    需要注意的是,switch(c) 语句中c可以是intlongcharunsignedint 等类型,唯独不可以是float类型。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|猿媛之家    

GMT+8, 2020-2-28 13:36 , Processed in 0.207205 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表