9.9. 循环和开关选择语句
总述
switch
语句可以使用大括号分段, 以表明 cases 之间不是连在一起的. 在单语句循环里, 括号可用可不用. 空循环体应使用 {}
或 continue
.
说明
switch
语句中的 case
块可以使用大括号也可以不用, 取决于你的个人喜好. 如果用的话, 要按照下文所述的方法.
如果有不满足 case
条件的枚举值, switch
应该总是包含一个 default
匹配 (如果有输入值没有 case 去处理, 编译器将给出 warning). 如果 default
应该永远执行不到, 简单的加条 assert
:
- switch (var) {
- case 0: { // 2 空格缩进
- ... // 4 空格缩进
- break;
- }
- case 1: {
- ...
- break;
- }
- default: {
- assert(false);
- }
- }
在单语句循环里, 括号可用可不用:
- for (int i = 0; i < kSomeNumber; ++i)
- printf("I love you\n");
- for (int i = 0; i < kSomeNumber; ++i) {
- printf("I take it back\n");
- }
空循环体应使用 {}
或 continue
, 而不是一个简单的分号.
- while (condition) {
- // 反复循环直到条件失效.
- }
- for (int i = 0; i < kSomeNumber; ++i) {} // 可 - 空循环体.
- while (condition) continue; // 可 - contunue 表明没有逻辑.
- while (condition); // 差 - 看起来仅仅只是 while/loop 的部分之一.