do...while
do...while
语句创建一个循环,只要测试条件计算结果为 true,就会执行指定的语句。条件是在执行语句后计算的,导致指定的语句至少执行一次。
试一试
语法
js
do
statement
while (condition);
语句
-
至少执行一次并在条件计算结果为 true 时重新执行的语句。可以使用 块语句 执行多个语句。
条件
-
每次循环后计算的表达式。如果此条件 计算结果为 true,则重新执行
statement
。当条件 计算结果为 false 时,执行将继续执行do...while
循环后的语句。
描述
示例
使用 do...while
在以下示例中,do...while
循环至少迭代一次,并重复迭代直到 i
不再小于 5。
js
let result = "";
let i = 0;
do {
i += 1;
result += `${i} `;
} while (i > 0 && i < 5);
// Despite i === 0 this will still loop as it starts off without the test
console.log(result);
使用 false 作为 do...while 条件
因为语句始终执行一次,所以 do...while (false)
与执行语句本身相同。这在类似 C 的语言中是一种常见的习惯用法,它允许您使用 break
提前退出分支逻辑。
js
do {
if (!user.loggedIn) {
console.log("You are not logged in");
break;
}
const friends = user.getFriends();
if (!friends.length) {
console.log("No friends found");
break;
}
for (const friend of friends) {
handleFriend(friend);
}
} while (false);
// The rest of code
在 JavaScript 中,有一些替代方法,例如使用带 break
的 带标签的块语句
js
handleFriends: {
if (!user.loggedIn) {
console.log("You are not logged in");
break handleFriends;
}
const friends = user.getFriends();
if (!friends.length) {
console.log("No friends found");
break handleFriends;
}
for (const friend of friends) {
handleFriend(friend);
}
}
或使用函数
js
function handleFriends() {
if (!user.loggedIn) {
console.log("You are not logged in");
return;
}
const friends = user.getFriends();
if (!friends.length) {
console.log("No friends found");
return;
}
for (const friend of friends) {
handleFriend(friend);
}
}
使用赋值作为条件
规范
规范 |
---|
ECMAScript 语言规范 # sec-do-while-statement |
浏览器兼容性
BCD 表格仅在浏览器中加载