C++ switch
在本文中,我们讨论了 C++ 中的 switch 语句的用法和工作原理。
switch
语句允许我们在许多备选方案中执行一个代码块。
switch 语法
C++ switch
语句的语法是:
switch (expression) {
case constant1:
// 这里的代码当 expression = constant1 时执行
break;
case constant2:
// 这里的代码当 expression = constant2 时执行
break;
.
.
.
default:
// 这里是默认执行的代码
}
switch 语句工作原理
switch
只计算一次 expression
,并将计算结果与每一个 case
的值相比较。
- 如果有匹配,则执行匹配的
case
中的代码块。例如,如果expression
的值等于constant2
,则执行case constant2:
后面的代码,直到遇到break 语句。 - 如果豆不匹配, 则执行
default:
后面的代码。
注意:我们可以用 if...else..if
做同样的事情。但是, switch
语句的语法更清晰,更易于阅读和编写。
下图说明了 switch
语句的工作流程
示例:使用 switch 语句创建计算器
#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
。