JavaScript do-while 循环
do-while 循环是一种后测试循环结构,先执行循环体,再判断条件,保证循环体至少执行一次。
语法结构
JavaScript
do {
// 循环体
} while (条件表达式);
代码示例
JavaScript
// 基本用法:至少执行一次
let i = 0;
do {
console.log(i);
i++;
} while (i < 3);
// 输出:0, 1, 2
// 条件初始为 false 也会执行一次
let j = 10;
do {
console.log(j); // 输出 10
} while (j < 5); // 条件为 false,循环结束
// 用户输入验证场景
let input;
do {
input = prompt('请输入 1-100 之间的数字');
} while (input < 1 || input > 100);
// 计算累加和
let sum = 0;
let n = 1;
do {
sum += n;
n++;
} while (n <= 100);
console.log(sum); // 5050
与 while 循环对比
JavaScript
// while:先判断后执行,可能一次都不执行
let a = 10;
while (a < 5) {
console.log(a); // 不执行
}
// do-while:先执行后判断,至少执行一次
let b = 10;
do {
console.log(b); // 输出 10
} while (b < 5);
| 特性 | while | do-while |
|---|---|---|
| 判断时机 | 先判断后执行 | 先执行后判断 |
| 最少执行次数 | 0 次 | 1 次 |
| 适用场景 | 可能需要跳过循环 | 必须执行一次 |
使用场景
JavaScript
// 菜单选择
let choice;
do {
console.log('1. 新建');
console.log('2. 打开');
console.log('3. 退出');
choice = getMenuChoice();
} while (choice !== 3);
// 模拟掷骰子直到得到 6
let dice;
do {
dice = Math.floor(Math.random() * 6) + 1;
console.log('掷出:' + dice);
} while (dice !== 6);
console.log('终于掷出 6 了!');
注意事项
- 循环体后的
while条件必须有分号;- 条件中使用的变量要在循环外声明或在循环体内更新
- 避免死循环,确保条件最终变为 false
JavaScript
// 错误:漏掉分号
do {
console.log(i);
i++;
} while (i < 5) // 缺少分号,语法错误
// 死循环示例(避免)
do {
console.log('无限循环');
} while (true); // 条件永远为 true
要点总结
- do-while 先执行循环体,再判断条件,至少执行一次
- 语法格式:
do { } while (条件);,分号不可省略 - 适用于需要至少执行一次的场景,如菜单选择、输入验证
- 与 while 的核心区别:判断时机不同,最少执行次数不同
📝 发现内容有误?点击此处直接编辑