测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看
B57

while 与 do-while:按条件循环

引入

章前总览 第11章学习按条件决定是否继续的循环:while(先判断)和 do-while(先执行再判断)。实际做题几乎只用 while;do-while 了解即可。条件永远为真会变成死循环

逻辑链条:

  • C1:while / do-while 写法
  • C2:事先请示 vs 先斩后奏
  • C3:死循环怎么识别

1 C1. 两种写法

循环体多条语句要用 {}

</> 对照

// while:先判断
while (表达式)
    循环体;

// do-while:先做一次,再判断(末尾分号不能省)
do
    循环体;
while (表达式);
  • while (...); 多写的分号会变成空循环体,初学要小心。
  • 表达式非 0 为真,为 0 结束循环。

2 C2. 区别:取钱比喻

每月取 800 元、不可透支:

对比

  • while:先查余额够不够再取——“事先请示”。
  • do-while:先取再查——“先斩后奏”,至少取一次。
  • 若一开始余额就不足 800,do-while 仍会取第一笔,逻辑往往不对。
  • 因此:do-while 至少执行一次循环体;条件一开始就不成立时要特别小心。

3 C3. 永真循环 / 死循环

条件永远为真,循环永不结束。for 也可能死循环,不是 while 独有。

常见原因

  • 忘了在循环里修改循环变量(如注释掉 i++)。
  • 运行时一直无输出、光标闪烁:可能在等输入,也可能死循环——试着再输入,没反应多半是死了。
  • 永真循环可用,但通常要配合 break(第13章),务必谨慎。
小结

选型口诀:

不知道次数、看条件 → while
必须先做一次再判断 → do-while(少用)
循环里记得改条件相关的变量!
里程碑达成:

下一节用 while 重做求幂、奇数和,并统计整数位数。