C++ 零基础入门-6.switch 多条件选择
本文介绍了C++中switch语句的基础用法,适合处理多条件选择场景。文章通过菜单选择案例详细讲解了switch的基本语法、case/break/default的使用规则,并特别说明了break的重要性以及穿透特性的巧妙利用。相比if-else结构,switch在处理固定值分支时更清晰高效,但仅适用于整型常量判断。文末还提出了一个计算器实现的思考题,鼓励读者动手实践。该教程采用标准C++编写,代码
【C++ 零基础入门】第6篇:switch 多条件选择
作者:咏方舟-长江支流 | 日期:2026-03-16
✅ 标准C++跨平台说明
本系列免费,敬请关注!所有代码均采用标准C++,不依赖任何平台特有API。今天学习的代码,今后可以直接运行在鸿蒙Native C++工程、Linux、macOS等任何支持标准C++的环境。VS2022/2026是我们高效的开发工具,但你的代码属于全平台。
🖥️ Windows VS2026📱 鸿蒙 DevEco🐧 Linux GCC🍎 macOS Clang
本节目标
- 学会
switch多条件选择 - 掌握
case/break/default - 完成菜单选择案例
完整代码
#include <iostream>
using namespace std;
int main() {
int choice;
cout << "请选择功能(1-3):";
cin >> choice;
switch (choice) {
case 1:
cout << "执行功能1" << endl;
break;
case 2:
cout << "执行功能2" << endl;
break;
case 3:
cout << "执行功能3" << endl;
break;
default:
cout << "输入错误" << endl;
break;
}
//system("pause");
return 0;
}
一、引言
当程序需要根据一个变量的多个可能值执行不同的操作时,使用上一节学的 if else if 可以实现,但代码会显得冗长。C++ 提供了更简洁、可读性更高的多分支选择语句——switch。它尤其适合处理“整数常量”或“字符常量”的多个固定选项。今天我们就来学习如何用 switch 打造一个简单的功能菜单。
二、从键盘输入数据
回顾之前学过的 cin,我们可以让用户输入一个整数来代表菜单选项。例如,在第5篇中我们用 if else 实现了成绩判断,但如果是并列的几个选项(比如1-3),用 switch 更清晰。先来看一个基本的输入例子:
int choice; cout << "请选择功能(1-3):"; cin >> choice;
输入之后,我们需要根据 choice 的值执行不同的功能。如果用 if else 会写成这样:
if (choice == 1) {
cout << "执行功能1" << endl;
} else if (choice == 2) {
cout << "执行功能2" << endl;
} else if (choice == 3) {
cout << "执行功能3" << endl;
} else {
cout << "输入错误" << endl;
}
这段代码能工作,但 switch 提供了一种更优雅的写法,接下来我们就深入学习它。
三、switch 多条件选择详解
1. 基本语法
switch 语句的通用格式如下:
switch (表达式) {
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
...
default:
默认语句;
break;
}
规则说明:
- 表达式的值必须是整数类型(如
int、char、enum),不能是浮点数或字符串。 case后面跟一个常量表达式,与表达式的值比较。- 如果匹配某个
case,则执行该case下的语句,直到遇到break才跳出整个switch;如果没有break,会发生“穿透”(继续执行下一个case)。 default是可选的,当没有任何case匹配时执行。
2. 菜单选择案例解析
回到开头的完整代码,我们逐部分解析:
1. 包含头文件与命名空间
#include <iostream> using namespace std;
同上几篇,引入输入输出流。
2. 变量声明与输入
int choice; cout << "请选择功能(1-3):"; cin >> choice;
声明一个整型变量 choice,并提示用户输入。
3. switch 分支
switch (choice) {
case 1:
cout << "执行功能1" << endl;
break;
case 2:
cout << "执行功能2" << endl;
break;
case 3:
cout << "执行功能3" << endl;
break;
default:
cout << "输入错误" << endl;
break;
}
- 当
choice等于 1 时,进入case 1,输出“执行功能1”,然后break跳出。 - 等于 2 或 3 同理。
- 如果输入 1、2、3 以外的值(比如 5),则进入
default,输出“输入错误”。
⚠️ 注意:每个 case 末尾的 break 必不可少。如果忘记写 break,程序会继续执行下一个 case 中的代码,直到遇到 break 或 switch 结束,这种现象称为“穿透”。例如,若 case 1 后没有 break,当输入 1 时,程序会先输出“执行功能1”,然后继续执行 case 2 的代码(输出“执行功能2”),这不符预期。
4. 程序暂停与返回
//system("pause");
return 0;
作用同前,暂停程序查看结果并正常退出。
3. switch 的穿透特性
穿透有时也可以被利用。例如,如果希望多个 case 执行相同的代码,可以写成:
switch (score) {
case 10:
case 9:
cout << "A" << endl;
break;
case 8:
case 7:
cout << "B" << endl;
break;
default:
cout << "C" << endl;
}
当 score 为 10 或 9 时,都会输出“A”。这种利用穿透的方式可以让代码更简洁。
四、总结
本节我们学习了 switch 语句的基本用法、case 和 break 的作用、default 的使用以及穿透特性。与 if else 相比,switch 在处理多个固定值的分支时结构更清晰,执行效率也略高。但要注意,switch 只能用于整型常量的判断,无法处理范围或复杂条件。
思考题:假设我们要实现一个简单的计算器,用户输入两个整数和一个运算符(+、-、*、/),请尝试用 switch 完成运算(提示:运算符是字符类型,可以用 char 变量,switch 对字符同样有效)。欢迎在评论区分享你的代码!
❤️ 感谢您读到这里!
如果这篇文章或系列连载对您有所启发,欢迎点赞 👍、分享↗️ 给更多需要的朋友。您的每一次互动爱心 ❤️ ,都是我持续深耕技术、分享干货的最大动力。关注我(公众号 金质打印通),学习实用技术,分享快乐!😊
💬 评论区聊聊:你曾经在 switch 中漏写 break 导致过奇怪的 bug 吗?或者有什么利用穿透的巧妙用法?
声明:本文作者 咏方舟-长江支流 相应内容版权归原作者所有,欢迎转载,请保留完整的内容及出处。
#金质打印通 #GoldPrinter #咏方舟长江支流 #零基础入门编程 #零基础到底层实战编程 #编程#VS2026 #switch #多条件选择
—— 每天进步一点点 ——
更多推荐




所有评论(0)