switch
语句允许我们在许多备选项中执行一个代码块。
您也可以使用 if...else 语句来实现相同的功能。但是,switch 语句的语法读写起来更简单。
语法
switch (expression) {
case constant1:
// code to be executed if
// expression is equal to constant1;
break;
case constant2:
// code to be executed if
// expression is equal to constant2;
break;
.
.
.
default:
// code to be executed if
// expression doesn't match any constant
}
switch 语句是如何工作的?
expression
被评估一次,并与每个 case
标签的值进行比较。
- 如果找到匹配项,则执行匹配标签后的相应代码。例如,如果 变量 的值等于
constant2
,则执行case constant2:
之后直到遇到 break 语句 的代码。 - 如果没有找到匹配项,则执行
default:
之后的代码。
注意:我们可以使用 if...else..if 级联来实现相同的功能。但是,switch 语句的语法更简洁,读写起来也更容易。
switch 语句的流程图

示例:使用 switch 语句创建一个计算器
// Program to build a simple calculator using switch Statement
#include <iostream>
using namespace std;
int main() {
char oper;
float num1, num2;
cout << "Enter an operator (+, -, *, /): ";
cin >> oper;
cout << "Enter two numbers: " << endl;
cin >> num1 >> num2;
switch (oper) {
case '+':
cout << num1 << " + " << num2 << " = " << num1 + num2;
break;
case '-':
cout << num1 << " - " << num2 << " = " << num1 - num2;
break;
case '*':
cout << num1 << " * " << num2 << " = " << num1 * num2;
break;
case '/':
cout << num1 << " / " << num2 << " = " << num1 / num2;
break;
default:
// operator is doesn't match any case constant (+, -, *, /)
cout << "Error! The operator is not correct";
break;
}
return 0;
}
输出 1
Enter an operator (+, -, *, /): + Enter two numbers: 2.3 4.5 2.3 + 4.5 = 6.8
输出 2
Enter an operator (+, -, *, /): - Enter two numbers: 2.3 4.5 2.3 - 4.5 = -2.2
输出 3
Enter an operator (+, -, *, /): * Enter two numbers: 2.3 4.5 2.3 * 4.5 = 10.35
输出 4
Enter an operator (+, -, *, /): / Enter two numbers: 2.3 4.5 2.3 / 4.5 = 0.511111
输出 5
Enter an operator (+, -, *, /): ? Enter two numbers: 2.3 4.5 Error! The operator is not correct.
在上面的程序中,我们使用 switch...case
语句执行加法、减法、乘法和除法。
该程序如何工作
- 我们首先提示用户输入所需的 运算符。然后将此输入存储在名为 oper 的
char
变量中。 - 然后,我们提示用户输入两个数字,并将它们存储在浮点变量 num1 和 num2 中。
- 然后,
switch
语句用于检查用户输入的运算符- 如果用户输入
+
,则对数字执行加法。 - 如果用户输入
-
,则对数字执行减法。 - 如果用户输入
*
,则对数字执行乘法。 - 如果用户输入
/
,则对数字执行除法。 - 如果用户输入任何其他字符,则会打印默认代码。
- 如果用户输入
请注意,每个 case
块内部都使用了 break 语句。这会终止 switch
语句。
如果未使用 break
语句,则会执行正确 case
之后的所有 case。
您可以访问有关 C++ 简单计算器程序 的文章以了解更多信息。