break语句的使用,是switch-case语句的核心。因为在大多数情况下,在下一个case标号前面必须加上一个break语句。
故意省略break是一种特别罕见的用法,因此在这种形式的代码附近,请务必添加一些注释,说明其运行逻辑。
在switch-case结构中,只能在最后一个case标号或default中定义内部变量。指定这种规则是为了避免出现代码跳过变量定义和初始化的情况。
这个规则存在的原因:一般如果定义一个变量,此变量便从此定义开始有效,直到所在的语句块结束。如果在两个case中间定义一个变量,那么对于定义变量的case标号后面的其他标号都可以使用这个变量。但是如果switch从那些后续case标号开始执行呢?可能这个变量没有定义就使用了,这是我们所不想看到的。为了实现在case中可以定义变量,可以引进语句块思想实现。在该语句块中定义变量,从而保证这个变量在使用前定义和初始化。而出了这个语句块该变量就是非法了。所以,在case语句块中,最好不要定义变量,所需的变量应在switch之前进行定义和初始化。如果必须定义变量,请谨慎而为,请采用语句块方式实现内部变量的定义。
对于那些哪怕没有语句在default标号下执行的环境中,定义default标号依然是有用的,定义default标号可明确地告诉读者,这种情况已考虑到,只是没有什么可以执行的。default标号不能单独存在,它必须位于语句之前,如果switch以default结束,而default分支没有什么任务需要执行,那么default标号后面必须添加 个空语句。
二.&&,||
&&和||是C++逻辑或和逻辑与操作符。在求值过程中,仅当a不能确定表达式的值时,才会求解b。在逻辑与表达式中,a的计算结果是true。如果a的计算结果是false,则无论b的值是什么,逻辑表达式的值都为false。当a的值为true时,只有b的值也为true时,逻辑与表达式的值才为true。在逻辑或中同样,这就是短路求值。
&&和&,||和|的区别:&和|是位与和位或操作符。需要两个整型操作数。&,在每个位的位置,如果两个操作数对应的位都为1,则操作结果中该位为1,否则为0。|操作,在每个位的位置,如果两个操作数对应的位只有一个为1,则操作结果中该位为1,否则为0;位操作符和逻辑操作符