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函数效率更高)

你可能感兴趣的:(c++,c++)