首页/ 第 5 章 · C# 编程基础/ 第 52 课
LESSON 52 · C# 编程基础

switch 语句

switch 已掌握。下一课进入循环:让代码重复执行。

⏱ 约 12 分钟📊 难度:入门🗂 第 5 章 · C# 编程基础📍 第 52 / 300 课
课程进度
52 / 300

🎯本节学习目标

  • 掌握 switch 语法
  • 理解 break 的作用
  • 会用 default 兜底

🚀课程导读

当判断的是“某个值等于什么”时,switch 比一堆 if else 更清晰。比如根据玩家选择不同职业。

switch 基础语法

按值跳转。

  1. 语法:switch (变量) { case 值1: 代码; break; case 值2: 代码; break; default: 兜底代码; break; }
  2. switch 根据变量的值,跳到匹配的 case 执行。
  3. 每个 case 末尾必须有 break(跳出 switch),否则会“贯穿”继续执行下一个 case。
  4. default 处理所有未匹配的值,可省略。
  5. 例:string weapon = "剑"; switch (weapon) { case "剑": ... break; case "弓": ... break; default: ... break; }
  6. switch 常与枚举(第 70 课)搭配使用,代码可读性极高。
⚠️
每个 case 结尾忘记 break 会“贯穿”,这是 switch 最常见的坑。

Unity 实战:菜单选项

根据输入数字做不同处理。

  1. 新建脚本 SwitchDemo。
  2. 声明 int option = 2;(模拟玩家选择了第 2 项)。
  3. 写 switch (option) { case 1: Debug.Log("开始游戏"); break; case 2: Debug.Log("读取存档"); break; case 3: Debug.Log("设置"); break; default: Debug.Log("无效选项"); break; }
  4. 播放运行,把 option 改成不同值测试。
  5. 把 option 改成 9,观察 default 兜底输出。
  6. 体会:switch 适合“离散值多选一”,if else 适合“范围/条件判断”。
💡
switch 的判断值可以是 int、string、enum、bool 等;新版还支持 switch 表达式(进阶)。

常见错误与排查

错误:报错:控制不能从 case 标签贯穿到另一个标签?
原因:case 缺 break
解决:给每个 case 末尾补上 break。

动手练习

课后小任务(做出来才算真的学会)

  • 用 switch 根据 1-3 打印三个菜单选项
  • 加一个 default 处理非法输入
  • 用 switch 处理一个 string 类型的状态

本节小结

switch 已掌握。下一课进入循环:让代码重复执行。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课条件语句 if / else if / else