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

循环:while 与 do-while

while / do-while 已掌握。下一课学 foreach 遍历集合。

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

🎯本节学习目标

  • 掌握 while 语法
  • 掌握 do-while 语法
  • 理解两者的区别与应用

🚀课程导读

for 适合“知道循环几次”,while 适合“只要条件满足就一直做”。比如一直等玩家输入。

while 循环

先判断,后执行。

  1. 语法:while (条件) { 循环体 }
  2. 只要条件为 true,就不断执行循环体;条件变为 false 时退出。
  3. 例:int i = 0; while (i < 5) { Debug.Log(i); i++; } 输出 0~4。
  4. 与 for 的等价关系:while 其实就是“去掉三段式”的 for,需要手动维护计数器。
  5. 【使用场景】不知道循环次数、只知终止条件时:如等待变量满足某条件。
  6. 【警告】条件恒 true 且无退出路径 = 死循环,程序卡死。
  7. 循环体内一定要有“改变条件”的语句(如 i++)。
while 里忘了改变条件会死循环,编辑器直接卡死/报错。写 while 时先想好“怎么退出”。

do-while 循环

先执行一次,再判断。

  1. 语法:do { 循环体 } while (条件);
  2. 无论条件真假,循环体【至少执行一次】,然后才判断条件。
  3. 例:int i = 0; do { Debug.Log(i); i++; } while (i < 3); 输出 0,1,2。
  4. 若初始条件为 false:while 一次都不执行;do-while 会执行一次。
  5. 【使用场景】“先做一次再问”的场景:如先显示一次菜单,再问是否继续。
  6. 注意 do-while 末尾有分号 ;,别漏。
  7. 对比记忆:while = 先检查再进门;do-while = 先进门再检查。
💡
do-while 用得少,但“至少执行一次”的语义在某些 UI 流程里很实用。

Unity 实战

while 处理动态条件。

  1. 新建脚本 WhileDemo,在 Start 里写:int hp = 100; while (hp > 0) { Debug.Log("当前血量:" + hp); hp -= 20; }
  2. 观察输出:100,80,60,40,20,然后停止(hp 变 0 退出)。
  3. 体会 while 在“不知道要循环几次”时的便利。
  4. 再写 do-while:int n = 0; do { Debug.Log("执行了" + n); n++; } while (n < 2);
  5. 对比 while (n < 2) 的版本,体会“至少执行一次”。
  6. 注意:Unity 的 Update 里尽量不要写会长时间阻塞的 while,否则游戏卡顿。
💡
Update 里需要“逐帧”循环时别用 while(会卡死一帧),用 Update 本身或协程(第 82 课)。

常见错误与排查

错误:程序运行时卡死?
原因:死循环
解决:检查 while 条件与退出语句;Update 里别写阻塞性 while。

动手练习

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

  • 用 while 打印 1 到 10
  • 写一个 do-while,初始条件为 false 观察是否执行一次
  • 说出 while 与 do-while 的核心区别

本节小结

while / do-while 已掌握。下一课学 foreach 遍历集合。

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

← 上一课循环:for