3.7 while 循环
循环(loop)用于重复执行一段代码。while 循环会先判断条件,只要条件为 true,JavaScript 就执行循环体;循环体执行完后,再回到条件处重新判断。
while 的基本结构
一个稳定的 while 循环通常包含三件事:
- 初值:循环开始前,先准备循环变量。
- 条件:每一轮开始前,判断是否继续循环。
- 更新:每一轮循环中,让循环变量发生变化。
js
let i = 1; // 初始值
while (i <= 5) { // 条件
console.log("循环中:i =", i);
i += 1; // 更新
}
console.log("循环结束后:i =", i);输出结果:
text
循环中:i = 1
循环中:i = 2
循环中:i = 3
循环中:i = 4
循环中:i = 5
循环结束后:i = 6while 的特点是先判断、再执行。因此循环体可能执行多次,也可能一次都不执行。
正在加载概念检查...
累加与平均值
循环经常和累加变量一起使用。下面的程序计算 5 个人的平均身高。
js
const NUM_PEOPLE = 5;
const heights = [160.8, 175.2, 171.2, 181.3, 164];
let total = 0;
let i = 0;
while (i < NUM_PEOPLE) {
total += heights[i];
i += 1;
}
let average = total / NUM_PEOPLE;
console.log(`平均身高:${average.toFixed(2)}`);输出结果:
text
平均身高:170.50total += heights[i] 的意思是把当前身高加到累计总和里。循环结束后,total 保存的是所有身高之和。
正在加载交互实验...
循环直到条件改变
while 适合处理“循环次数不一定一开始就知道”的任务。例如,计算一个整数有多少位。
js
let num = Math.abs(Number(prompt("请输入一个整数:")));
let digits;
if (num === 0) {
digits = 1;
} else {
digits = 0;
while (num !== 0) {
num = Math.floor(num / 10);
digits += 1;
}
}
console.log("位数:", digits);这里额外处理了 0。如果直接写 while (num !== 0),输入 0 时循环一次也不会执行,位数会被错误地算成 0。
正在加载交互实验...
正在加载本节练习...