JavaScript while 循环
while
循环只要指定的条件为 true
,就会重复执行一段代码。
while
循环的语法是
while (condition) {
// body of loop
}
这里,
while
循环首先计算( )
中的条件。- 如果条件计算结果为
true
,则执行{ }
中的代码。 - 然后,再次计算该条件。
- 只要条件计算结果为
true
,这个过程就会持续下去。 - 如果条件计算结果为
false
,循环就会停止。
while 循环流程图

示例 1:显示从 1 到 3 的数字
// initialize variable i
let i = 1;
// loop runs until i is less than 4
while (i < 4) {
console.log(i);
i += 1;
}
输出
1 2 3
循环的每次迭代中,上面的程序都会如此工作
变量 | 条件:i < 4 | 操作 |
---|---|---|
i = 1 |
true |
打印 1。i 增加到 2。 |
i = 2 |
true |
打印 2。i 增加到 3。 |
i = 3 |
true |
打印 3。i 增加到 4。 |
i = 4 |
false |
循环终止。 |
要了解更多关于循环条件的信息,请访问 JavaScript 比较和逻辑运算符。
示例 2:仅正数的总和
let num = 0, sum = 0;
// loop as long as num is 0 or positive
while (num >= 0) {
// add all positive numbers
sum += num;
// take input from the user
num = parseInt(prompt("Enter a number: "));
}
// last, display sum
console.log(`The sum is ${sum}`);
输出
Enter a number: 2 Enter a number: 4 Enter a number: -3 The sum is 6
上面的程序提示用户输入一个数字。
由于 JavaScript 的 prompt()
只接受 字符串 作为输入,parseInt()
会将输入转换为数字。
只要我们输入正数,while
循环就会将它们相加,并提示我们输入更多数字。
所以当我们输入一个负数时,循环就会终止。
最后,我们显示正数的总和。
注意:当我们把两个或多个数字字符串相加时,JavaScript 会将它们视为字符串。例如,"2" + "3" = "23"
。所以,我们应该始终将数字字符串转换为数字,以避免意外的行为。
JavaScript do...while 循环
do...while
循环会执行一段代码一次,然后只要指定的条件为 true
,就会重复执行它。
do...while
循环的语法是
do {
// body of loop
} while(condition);
这里,
do…while
循环执行{ }
中的代码。- 然后,它计算
( )
中的条件。 - 如果条件计算结果为
true
,则再次执行{ }
中的代码。 - 只要条件计算结果为
true
,这个过程就会持续下去。 - 如果条件计算结果为
false
,循环就会终止。
do...while 循环流程图

示例 3:显示从 3 到 1 的数字
let i = 3;
// do...while loop
do {
console.log(i);
i--;
} while (i > 0);
输出
3 2 1
在这里,i 的初始值为 3。然后,我们使用 do...while
循环迭代 i 的值。循环在每次迭代中的工作方式如下
操作 | 变量 | 条件:i > 0 |
---|---|---|
打印 3。i 减为 2。 | i = 2 |
true |
打印 2。i 减为 1。 | i = 1 |
true |
打印 1。i 减为 0。 | i = 0 |
false |
循环终止。 | - | - |
while
和 do...while
之间的区别在于 do...while
循环至少执行其主体一次。例如,
let i = 0;
// false condition
// body executes once
do {
console.log(i);
} while (i > 1);
// Output: 0
另一方面,如果循环条件为 false
,while
循环不会执行其主体。例如,
let i = 0;
// false condition
// body not executed
while (i > 1) {
console.log(i);
};
示例 4:正数的总和
let sum = 0, num = 0;
do {
// add all positive numbers
sum += num;
// take input from the user
num = parseInt(prompt("Enter a number: "));
// loop terminates if num is negative
} while (num >= 0);
// last, display sum
console.log(`The sum is ${sum}`);
输出
Enter a number: 2 Enter a number: 4 Enter a number: -3 The sum is 6
在上面的程序中,do...while
循环提示用户输入一个数字。
只要我们输入正数,循环就会将它们相加,并提示我们输入更多数字。
如果我们输入一个负数,循环将终止,而不会将负数相加。
更多关于 JavaScript while 和 do...while 循环
无限 while
循环是指循环无限运行的条件,因为其条件始终为 true
。例如,
let i = 1;
// always true condition
while(i < 5) {
console.log(i);
}
同样,这是一个无限 do...while
循环的示例,
let i = 5;
// always true condition
do {
console.log(i);
} while (i > 1);
在上面的程序中,条件 1
> 1
始终为 true
,这导致循环主体永远运行。
注意:无限循环可能导致程序挂起。所以,请避免无意中创建它们。
当我们只需要执行固定次数的迭代时,我们使用 for
循环。例如,
// display hi 3 times
for (let i = 1; i <= 3; i++) {
console.log("hi");
}
console.log("bye");
输出
hi hi Hi bye
与此同时,当我们需要的终止条件可能会发生变化时,我们使用 while
循环。例如,
// display hi as long as user wants
let isDisplay = true;
let userChoice = "";
while (isDisplay) {
console.log("hi");
userChoice = prompt("print hi again? y for yes: ");
if (userChoice != "y")
isDisplay = false;
}
console.log("bye");
输出
hi print hi again? y for yes: y hi print hi again? y for yes: y hi print hi again? y for yes: n bye
在上面的程序中,我们让用户按他们希望的次数打印 hi
。
由于我们不知道用户的决定,所以我们使用 while
循环而不是 for
循环。
另请阅读