while 循环
for 把起始、条件和更新收进同一个头部。有时你只知道一条规则:「只要为真就继续」——计数器在干活过程中自己变。while 先检查一个条件,跑循环体,再检查。重复工作的想法相同;页面上的写法不同。
while 做什么?
只要括号里的条件为真,{ } 块就会再跑一遍。头部没有单独的起始或更新槽位。在循环前准备好变量,在循环体里改它们,直到条件变成假。那时循环结束,接着执行后面的语句。
while、for 与 do...while 一览
📊 日常循环形态
| 形态 | 何时合适 | 条件检查 |
|---|---|---|
while |
规则成立就继续;更新写在循环体 | 每轮之前 |
for |
起始、停止、步长事先清楚 | 每轮之前(三部分头部) |
do...while |
循环体至少要跑一次 | 每轮之后 |
入门级 while 例子仍常用小整数计数器。差别在位置:循环前写 let i = 0,花括号里写 i++(或别的改动)。若从不改动条件所读的值,循环可能永远不结束。
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
用 while 计数
i 在循环前从 0 开始。每轮打印 i,再加一。你会看到 0…4——五轮。5 不会打印,因为条件先失败。循环体里没有 i++,i 会永远停在 0。
慢慢读一整轮:条件 → 循环体(含更新)→ 再看条件。所以忘记更新是 while 经典的死循环陷阱。
let n = 1;
while (n <= 3) {
console.log("step " + n);
n++;
}
从 1 开始,标签更清楚
这里计数器从 1 起,条件用 n <= 3;你会看到 step 1、step 2、step 3。从 0 还是 1 是设计选择——条件要和选择一致,和 for 一样。
let total = 0;
let k = 1;
while (k <= 4) {
total = total + k;
k++;
}
console.log(total);
逐轮累加
total 从 0 开始。每轮加上当前的 k,再推进 k。1+2+3+4 之后 total 是 10。增长的结果在循环外;驱动条件的计数器在旁边。
let left = 3;
while (left > 0) {
console.log("left=" + left);
left--;
}
console.log("done");
倒数到停止
不是每个循环都只往上走。这个打印 left=3、left=2、left=1,然后是 done。减小计数器也是诚实的更新——任何让循环走向结束的改动都可以。
let x = 0;
do {
console.log("tick " + x);
x++;
} while (x < 1);
console.log("after=" + x);
do...while 先执行循环体
do...while 先跑一遍循环体,再检查条件。即使对普通 while 来说条件一开始就是假,第一轮仍会发生。这里你会看到 tick 0,然后是 after=1。当故事是「先试一次,再视情况重复」时用它。
在页面上显示 while 结果
用 while 做短计数,拼出消息,再写到页面。
<!DOCTYPE html>
<html>
<head>
<title>While — page count</title>
</head>
<body>
<p id="out">…</p>
<script>
let msg = "";
let i = 1;
while (i <= 4) {
msg = msg + i + " ";
i++;
}
let box = document.getElementById("out");
box.textContent = "count=" + msg.trim();
</script>
</body>
</html>
页面显示 count=1 2 3 4。改上限、刷新,读新列表。三部分计划事先清楚时优先 for;停止规则是一条条件、更新写在循环体里时优先 while。下一课用 for...of 和 for...in 遍历值与键。
自己试一试
- 写一个
while,在循环体里用i < 5和i++输出0…4。 - 改成用
i <= 5输出1…5。 - 用
while把1…5累加进total并输出结果。 - 从
5倒数到1,再输出done。 - 写一个即使条件一开始为假也打印一行的
do...while。 - 在 HTML 演示里只改上限,刷新后读
count=。
常见错误
- 忘记在循环体里更新,条件永远不变假(死循环)
- 差一错误:本该
i <= 5却写成i < 5(或相反) - 明明允许零轮却选用
do...while - 更新写错位置,或改了条件没读的变量
- 明明清晰的
for头部更好读,却写很长的while
小结
while在条件为真时重复一块代码- 循环前准备变量;在循环体里更新
- 适合计数、求和与倒计时
do...while至少执行一次循环体,再检查- 起止步长清楚用
for;一条持续规则用while - 下一课:for...of 与 for...in —— 遍历值与键
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部