ZetCode

JavaScript do 关键字

最后修改于 2025 年 4 月 16 日

在本文中,我们将展示如何使用 do 关键字在 JavaScript 中创建 do...while 循环。 do...while 循环在检查条件之前至少执行一次代码块。

do 关键字

do 关键字用于在 JavaScript 中创建 do...while 循环。该循环首先执行一个代码块,然后检查条件。 与常规的 while 循环不同,do...while 保证至少执行一次。

语法由 do 关键字后跟一个用大括号括起来的代码块,然后是带有条件的 while 关键字组成。 只要条件评估为真,循环就会继续执行。

当您需要在检查是否应该重复之前至少执行一次代码时,do...while 循环非常有用。 它们通常用于输入验证和菜单系统。

基本 do...while 循环

以下示例演示了 do 关键字在 do...while 循环中的基本用法。

main.js
let i = 0;
do {
    console.log(i);
    i++;
} while (i < 5);

此循环将首先执行代码块,然后检查 i 是否小于 5。只要条件为真,它就会继续循环。该循环运行 5 次,记录数字 0 到 4。

$ node main.js
0
1
2
3
4

条件为假的 do...while 循环

此示例显示,即使条件最初为假,代码块也会执行一次。

main.js
let count = 10;
do {
    console.log('This runs once');
    count++;
} while (count < 5);

尽管 count 为 10(这使得条件为假),但在检查条件之前,代码块会运行一次。 这说明了 while 循环和 do...while 循环之间的关键区别。

$ node main.js
This runs once

使用 do...while 进行输入验证

Do...while 循环非常适合输入验证场景。

main.js
let userInput;
do {
    userInput = prompt('Enter a number between 1 and 10:');
} while (isNaN(userInput) || userInput < 1 || userInput > 10);

console.log(`Valid input: ${userInput}`);

此循环继续提示用户,直到他们输入 1 到 10 之间的有效数字。 代码必须至少运行一次才能获得初始输入,这使得 do...while 成为这种情况的理想选择。

$ node main.js
Enter a number between 1 and 10: 15
Enter a number between 1 and 10: abc
Enter a number between 1 and 10: 7
Valid input: 7

带有 break 的 do...while 循环

break 语句可用于提前退出 do...while 循环。

main.js
let num = 0;
do {
    num++;
    if (num === 3) {
        break;
    }
    console.log(num);
} while (num < 5);

此循环通常会运行到 num 达到 5,但我们使用 break 在 num 等于 3 时退出。 break 语句立即终止循环执行。

$ node main.js
1
2

嵌套 do...while 循环

Do...while 循环可以嵌套在其他循环中,包括其他 do...while 循环。

main.js
let i = 0;
do {
    let j = 0;
    do {
        console.log(`i: ${i}, j: ${j}`);
        j++;
    } while (j < 2);
    i++;
} while (i < 2);

此示例显示了两个嵌套的 do...while 循环。 内部循环为外部循环的每次迭代完成其所有迭代。 输出显示了 i 和 j 值的组合。

$ node main.js
i: 0, j: 0
i: 0, j: 1
i: 1, j: 0
i: 1, j: 1

带有 continue 的 do...while 循环

continue 语句跳过 do...while 循环中的当前迭代。

main.js
let k = 0;
do {
    k++;
    if (k === 2) {
        continue;
    }
    console.log(k);
} while (k < 4);

当 k 等于 2 时,continue 语句跳过该迭代的其余部分。 循环在检查条件后继续进行下一次迭代。 数字 1、3 和 4 被记录到控制台。

$ node main.js
1
3
4

实际用例:菜单系统

这是一个使用 do...while 构建简单菜单系统的实际示例。

main.js
let choice;
do {
    console.log('1. Option One');
    console.log('2. Option Two');
    console.log('3. Exit');
    choice = prompt('Enter your choice:');
    
    switch(choice) {
        case '1':
            console.log('You chose Option One');
            break;
        case '2':
            console.log('You chose Option Two');
            break;
        case '3':
            console.log('Exiting...');
            break;
        default:
            console.log('Invalid choice');
    }
} while (choice !== '3');

此菜单系统会继续显示选项,直到用户选择退出。 do...while 循环确保菜单至少显示一次,并重复执行直到满足退出条件。

$ node main.js
1. Option One
2. Option Two
3. Exit
Enter your choice: 1
You chose Option One
1. Option One
2. Option Two
3. Exit
Enter your choice: 3
Exiting...

来源

do...while - 语言参考

在本文中,我们演示了如何使用 do 关键字在 JavaScript 中创建 do...while 循环。 当您需要在检查条件之前至少执行一次代码时,这些循环很有用。

作者

我的名字是 Jan Bodnar,我是一位充满激情的程序员,拥有丰富的编程经验。 自 2007 年以来,我一直在撰写编程文章。 迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

查看 所有 JavaScript 教程。