掌握 C++ switch-case:语法、用法与实战示例
什么是 switch?
switch 语句对变量求值一次,并根据匹配的 case 标签分支执行,简化多路决策。
可视为清晰高效的 if…else if… 阶梯,根据变量值选择代码块。
本教程你将学到:
- switch 语句的概念
- 何时使用 switch
break关键字的作用- 语法与结构
- 实战示例
何时使用 switch?
当单个变量需与一组固定常量比较时,switch 理想。它比冗长的 if…else if… 链更清晰、更快。
break 关键字
switch 内部,break 终止当前 case,防止“穿透”到后续 case。若省略,执行将继续进入下一个 case。
遇到 break 时,控制流跳转到 switch 结束大括号后的语句。
语法
典型结构:
switch (variable) { case value1: // code break; case value2: // code break; default: // code }
- variable – 被求值的表达式。
- case – 待比较的常量值。
- break – 停止 switch 块执行。
- default – 可选;无 case 匹配时执行。
示例 1
#include <iostream> using namespace std; int main() { int x = 20; switch (x) { case 10: cout << "X is 10"; break; case 20: cout << "X is 20"; break; case 30: cout << "X is 30"; break; default: cout << "X is not 10, 20 or 30"; break; } return 0; }
输出:

代码截图:

代码解释:
- 包含
<iostream>启用控制台 I/O。 - 使用
std命名空间简化代码。 - 定义
main()入口点。 - 声明
int x = 20;。 - 用
switch(x)将x与常量比较。 - Case 10:打印 “X is 10”。
- Case 20:打印 “X is 20”。
- Case 30:打印 “X is 30”。
- Default:处理 10、20、30 以外的值。
- 每个 case 以
break;结尾防止穿透。 - 返回 0 表示成功。
示例 2
#include <iostream> using namespace std; int main() { int choice; cout << "Enter 1, 2 or 3: "; cin >> choice; switch (choice) { case 1: cout << "Choice 1"; break; case 2: cout << "Choice 2"; break; case 3: cout << "Choice 3"; break; default: cout << "Not 1, 2 or 3"; break; } }
输出:

代码截图:

代码解释:
- 包含
<iostream>用于 I/O。 - 使用
std命名空间。 - 声明
int choice;。 - 提示用户:“Enter 1, 2 or 3: ”。
- 读取输入到
choice。 - 对
choice执行 switch 分支匹配 case。 - Case 1 打印 “Choice 1”。
- Case 2 打印 “Choice 2”。
- Case 3 打印 “Choice 3”。
- Default 处理其他输入。
- 每个 case 以
break;结尾。
总结
- switch 为嵌套
if…else if…提供简洁替代方案。 - 语法更清晰,执行通常更快。
- 适用于变量需与多个常量值匹配的场景。
- 每个
case将变量与一个不同值比较。 break防止意外穿透。- 可选
default子句处理未匹配情况。
C语言
- 开关控制电路实战:从原理图到面包板的基础电路构建
- 掌握 C# switch 语句:语法、示例与最佳实践
- C# break 语句:用法、时机与实战示例
- 掌握 C++ break 语句:跳出循环与 switch 的核心控制流
- 掌握 C++ switch-case 语句:语法、流程与计算器实战案例
- C++ 运算符全解析:类型、示例与示例程序
- 掌握 C++ switch-case:语法、用法与实战示例
- C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
- C++ 结构体详解:定义、初始化、指针、函数参数与局限性
- C++ std::map 完全指南:键值对容器、核心操作与实战代码
- 掌握 C++ std::list:语法、函数与实战示例
- C++ Struct 与 Class 核心差异、语法及最佳实践