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 语句的工作流程

C++ switch…case 流程图
C++ switch...case 流程图

示例:使用 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 语句来执行加减乘除。

该程序如何运作

  1. 我们首先提示用户输入所需的运算符。然后将此输入存储在名为 operchar 变量中.

  2. 然后我们提示用户输入两个数字,它们存储在浮点变量 num1num2 中。

  3. 然后使用 switch 语句检查用户输入的运算符:

    • 如果用户输入 + ,则对数字执行加法。
    • 如果用户输入 - ,则对数字执行减法。
    • 如果用户输入 * ,则对数字执行乘法。
    • 如果用户输入 / ,则对数字进行除法。
    • 如果用户输入任何其他字符,则打印默认代码。

请注意,在每个 case 块内使用 break 语句。这将终止 switch 语句。

如果不使用 break 语句,则执行匹配的 case 之后的所有 case