C++ switch..case 语句

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

C++ switch...case flowchart
C++ switch...case 语句流程图

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

该程序如何工作

  1. 我们首先提示用户输入所需的 运算符。然后将此输入存储在名为 operchar 变量中。
  2. 然后,我们提示用户输入两个数字,并将它们存储在浮点变量 num1num2 中。
  3. 然后,switch 语句用于检查用户输入的运算符
    1. 如果用户输入 +,则对数字执行加法。
    2. 如果用户输入 -,则对数字执行减法。
    3. 如果用户输入 *,则对数字执行乘法。
    4. 如果用户输入 /,则对数字执行除法。
    5. 如果用户输入任何其他字符,则会打印默认代码。

请注意,每个 case 块内部都使用了 break 语句。这会终止 switch 语句。

如果未使用 break 语句,则会执行正确 case 之后的所有 case。

您可以访问有关 C++ 简单计算器程序 的文章以了解更多信息。

在结束之前,让我们来测试一下您对 C++ switch..case 语句的掌握程度!您能解决以下挑战吗?

挑战

编写一个函数来执行基本的算术运算。

  • 有四种运算:加法 +、减法 -、乘法 * 和除法 /
  • 返回由 op 指定的运算在数字 num1num2 上的结果。
  • 例如,num1 = 5op = '+'num2 = 3,预期输出为 **8**。
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战