在 C++ 中,switch 语句是一种流控制构造,用于根据给定表达式的值从多个选项中执行一个代码块。与冗长的 if-else-if 链相比,它提供了一种更清晰、更高效的替代方案。
- switch 语句使用一个变量或表达式,该变量或表达式通常提供一个整数或字符类型的常量值。
- 每个 case 代表一个可能的值,当它与表达式匹配时执行。
- break 语句用于结束一个 case,以防止程序继续执行下一个 case(这种现象称为“穿透”)。
- 如果没有其他 case 匹配,default case 将被执行,且它的位置不会影响执行逻辑。
C++
CODEBLOCK_bc240ff0
输出
A
Switch 语句的流程图
!switch case in cppC++ 中 switch 语句的流程图
Switch 语句的规则
在 C++ 中使用 switch 语句时,我们需要牢记以下几点规则:
- case 的值必须是 int(整数)或 char(字符)类型。
- 您可以根据需要拥有任意数量的 case 块。
- 不允许出现重复的 case 值。
- 每个 case 中的 break 语句是可选的。但是,我们强烈建议使用它,否则即使后续的 case 不匹配,也会被执行,直到遇到 break 语句为止。
示例
下面的程序演示了 switch 语句在 C++ 程序中的用法:
1. 打印星期名称
C++
CODEBLOCK_e84c5187
输出
Thursday
在上面的示例中,我们使用 switch 语句打印了星期名称。类似地,我们可以编写一个程序,使用 switch 语句创建一个简单的计算器来执行基本的算术运算。
2. 使用 switch 的简单计算器
C++
CODEBLOCK_71774c6d
Try it on GfG Practice<img src="https://www.geeksforgeeks.org/problems/c-switch-case-statement5900/1" alt="redirect icon" />
输出
Enter the two numbers: 10 2
Enter the Operator (+,-,*,/)
Enter any other to exit
+
10 + 2 = 12
嵌套 Switch 语句
C++ 允许使用嵌套 switch 语句,这意味着我们可以将一个 switch 语句放在另一个 switch 语句内部。然而,通常我们会避免这种情况,因为它会使程序变得更加复杂且难以阅读。
Switch 与 If Else If 的对比
以下是 C++ 中 switch 和 if else if 阶梯结构之间的主要区别:
if else if
—
它根据指定的条件执行不同的代码块。
它可以计算任何类型的表达式。
当条件很多时,代码可能会变得混乱。