C++中关于switch的一些理解

switch的格式有以下部分:

int number=11;  //省略命名空间等前缀
switch (number)
{
 case 10:
 statement 1;
 break;

 case 11:
 statement 2;
 break;

 case 12:
 statement 3;
 break;

 default: statement 4;
 break;
}

其中包括:

switch( )中的执行对象变量、case后面可能等于的值及其执行代码段、break、default 四种元素。

其中前两种相信都很容易理解,那么来看一下break和default:

1.break

break是告诉程序不再执行code block内的其它代码,跳出函数;

如果我们将第一个case中的break去掉,结果将依然执行statement 2,因为number=11,本来也不执行number=10的操作;

而如果我们将第二个case内的break去掉,输出将为statement2+3,因为此时执行完2后,程序不能跳出函数,将继续向下执行,此时即使number不满足,也将执行statement3。可以这么理解,switch语句是自上而下寻找到符合的case语句,执行其操作,当有break时跳出switch函数;若无break,那么将顺序执行下面操作,此时case更像是一个标签,不起判定的作用。

那么同理,如果将第二个、第三个的break同时去掉,将执行statement2+3+4。

2.default

default相当于设置了一个系统默认值,相当于if语句里的else,当所有case都不满足条件时,便执行default的操作。case标号和default标号与普通标号相同,可以出现在任何地方,并不受位置的影响(default放在其它地方,仍会正常执行),因为switch的执行可以看作go to 到数值匹配的地方。(经过优化,进而比if else函数效率更高)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值