C++ - switch 函数 - 判断
C++中的`switch`语句是一种用于多分支选择控制结构的关键元素,它简化了基于某个变量值执行不同代码块的过程。在C++中,`switch`的基本结构如下:
1. **基本结构**:
- `switch`关键字后面紧跟一个表达式(通常是一个变量),其值会被与每个`case`后的常量值进行比较。
- 每个`case`后跟一个具体的值,紧接着是一个花括号 `{}`,里面包含要执行的语句。
- `case`之后的值必须是整型、枚举类型或字符串类型(C++11以后)。
- 如果所有`case`都不匹配,可以有一个`default`分支,作为默认处理情况。
2. **代码片段示例**:
- 例如,这段代码用于根据字符变量`mark`的值显示不同的文字,如加号`+`对应"plus",减号`-`对应"minus"等。
```cpp
switch(mark) {
case '+':
cout << "plus";
break;
case '-':
cout << "minus";
break;
case '*':
cout << "times";
break;
case '/':
cout << "dividedby";
break;
default:
cout << "Nofound";
break;
}
```
注意每个`case`后面必须有`break`,避免连续的`case`值被后续的代码覆盖。
3. **if vs switch**:
- 对于单一变量的判断,`switch`通常比多个`if...else if...else`语句更简洁。
- 当需要基于多个条件或变量组合进行判断时,`if`语句更为灵活,因为它可以处理更复杂的逻辑关系。
4. **实例讲解:判断星期几**:
- 这是一个实际应用`switch`的例子,题目要求根据输入的整数(1-7分别代表周一到周日)输出相应的英文星期名称。
- 由于只需根据一个整数变量决定输出,因此非常适合使用`switch`,如:
```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
int day;
// ... 输入获取day
string weekDays[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
switch(day) {
case 1: cout << weekDays[0]; break;
case 2: cout << weekDays[1]; break;
// ...
default: cout << "Invalid input"; break;
}
return 0;
}
```
这里使用了数组`weekDays`来存储星期名,根据`day`的值索引数组输出对应的内容。
总结来说,`switch`语句在C++中是一种高效处理基于单个变量的多个条件分支的工具,通过与`case`值匹配执行相应代码。当涉及到更复杂的条件组合时,`if`语句则更为适用。理解并熟练运用这两种结构能帮助你编写更清晰、高效的C++代码。