javascript 中的 do...while 循环会在执行完一次循环体代码后检查条件,这意味着无论初始条件是否满足,循环体至少会执行一次。

do...while 与 while 的执行顺序差异是什么
do...while 先执行后判断,while 先判断后执行。这种差异导致在初始条件为假时,while 不会运行,而 do...while 仍会运行一次。

let i = 0;
// do-while: 先执行,再判断
// 即使 i > 5 为 false,也会先打印一次
do {
console.log('do-while:', i);
i++;
} while (i < 5);
// while: 先判断,再执行
// i > 5 为 false,直接跳过
while (i < 5) {
console.log('while:', i);
i++;
}预期输出:
"do-while: 0"
"while: 0"
"while: 1"
"while: 2"
"while: 3"
"while: 4"
立即学习“Java免费学习笔记(深入)”;
什么情况下必须使用 do...while
当业务逻辑要求必须先获取数据或执行操作,然后再根据结果决定是否继续时,必须使用 do...while。例如用户输入验证,需要先提示用户输入,再检查输入是否合法。

// 模拟用户输入验证场景
let userInput = '';
let isValid = false;
// 假设有一个函数获取输入
function getInput() { return 'invalid'; }
// 使用 do-while 确保至少提示一次
// 如果改用 while,第一次判断时 userInput 为空,可能无法触发首次提示逻辑
do {
userInput = getInput(); // 实际场景中这里可能是 prompt()
if (userInput === 'valid') {
isValid = true;
} else {
console.log('输入无效,请重试');
}
} while (!isValid);
console.log('最终输入:', userInput); 预期输出:
"输入无效,请重试"
"最终输入: invalid"
如果 do...while 的条件始终为真会发生什么
如果 do...while 的条件始终为真,循环将无限执行,直到遇到 break 语句或程序被外部终止。这会导致页面卡死或进程占用 CPU 过高。


















