switch
语句是C++中的一种多路分支选择结构,用于基于变量的值执行不同的代码块。它是 if-else
语句的简洁替代方案,当需要针对变量的不同值进行多个条件判断时,使用 switch
语句会更加清晰和简洁。
switch
语句的基本结构
switch (expression) {
case constant1:
// 代码块1
break;
case constant2:
// 代码块2
break;
// 你可以有任意数量的 case 语句
default:
// 默认代码块
}
关键点:
1. 表达式(expression):
- 必须是一个整型或可以转换为整型的表达式(如
int
、char
)。
2. case 语句:
- 每个
case
标签后面跟一个常量值。 - 当
expression
的值与case
标签的常量值匹配时,执行对应的代码块。
3. break 语句:
- 用于终止当前
case
代码块的执行,并跳出switch
语句。 - 如果没有
break
语句,将会出现“贯穿”现象(fall through),即执行完当前case
代码块后,会继续执行后续case
或default
代码块,直到遇到break
或结束switch
语句。
4. default 语句(可选):
- 当
expression
的值与任何case
常量都不匹配时,执行default
代码块。 default
语句是可选的。
示例代码
#include <iostream>
using namespace std;
int main() {
int day = 3;
switch (day) {
case 1:
cout << "Monday" << endl;
break;
case 2:
cout << "Tuesday" << endl;
break;
case 3:
cout << "Wednesday" << endl;
break;
case 4:
cout << "Thursday" << endl;
break;
case 5:
cout << "Friday" << endl;
break;
case 6:
cout << "Saturday" << endl;
break;
case 7:
cout << "Sunday" << endl;
break;
default:
cout << "Invalid day" << endl;
}
return 0;
}
运行结果:
Wednesday