switch 语句
switch/case/default、fall-through 机制、范围 case
switch 语句
C++ 的 switch 用法和 C 一样,但 C++17 支持 [[fallthrough]] 属性来显式标注穿透意图。
学完本章你将: 掌握 switch 语法、fall-through 问题、范围 case。
基本语法
cpp
#include <iostream>
int main() {
int day = 3;
switch (day) {
case 1:
std::cout << "星期一\n";
break;
case 2:
std::cout << "星期二\n";
break;
case 3:
std::cout << "星期三\n";
break;
default:
std::cout << "其他\n";
}
return 0;
}
fall-through 与 C++17 属性
cpp
switch (month) {
case 12:
case 1:
case 2:
std::cout << "冬天\n";
break;
case 3:
case 4:
case 5:
std::cout << "春天\n";
break;
}
// C++17: 如果有意 fall-through,用属性标注
switch (x) {
case 1:
doSomething();
[[fallthrough]]; // 明确告知:"我是故意的"
case 2:
doOther();
break;
}