全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-16 5 分钟 ✍️ juanwangdev

JavaScript while 循环

while 循环是前测试循环结构,先判断条件是否为真,再决定是否执行循环体,适合循环次数不确定的场景。

基本语法

JavaScript
while (条件) {
    // 循环体
    // 需要在循环体内更新条件相关变量
}

基本用法

JavaScript
// 基本计数循环
let i = 0;
while (i < 5) {
    console.log(i);
    i++;
}
// 输出:0, 1, 2, 3, 4

// 执行流程:
// 1. 判断条件是否为 true
// 2. 如果为 true,执行循环体
// 3. 循环体执行完后,回到步骤 1
// 4. 如果条件为 false,退出循环

条件控制循环

JavaScript
// 条件满足时继续循环
let count = 0;
while (count < 3) {
    console.log('执行次数:', count);
    count++;
}

// 用户输入验证
let input;
while (input !== 'quit') {
    input = prompt('输入 quit 退出');
}

// 处理数据直到条件满足
let data = [1, 2, 3, 4, 5];
while (data.length > 0) {
    console.log(data.pop());
}
// 输出:5, 4, 3, 2, 1

与 for 循环对比

JavaScript
// for 循环实现
for (let i = 0; i < 5; i++) {
    console.log(i);
}

// while 循环等价实现
let i = 0;
while (i < 5) {
    console.log(i);
    i++;
}

// for 更适合:已知循环次数
// while 更适合:条件控制、不确定次数

实际应用

JavaScript
// 读取数据直到结束
function readLines(lines) {
    let result = [];
    let index = 0;
    while (index < lines.length) {
        if (lines[index].startsWith('#')) {
            index++;
            continue;  // 跳过注释行
        }
        result.push(lines[index]);
        index++;
    }
    return result;
}

// 模拟游戏循环
let gameOver = false;
while (!gameOver) {
    // 处理输入
    // 更新状态
    // 渲染画面
    if (playerHealth <= 0) {
        gameOver = true;
    }
}

// 累加求和
let sum = 0;
let n = 1;
while (n <= 100) {
    sum += n;
    n++;
}
console.log(sum);  // 5050

循环控制

JavaScript
// break 跳出循环
let num = 0;
while (num < 100) {
    if (num === 5) break;
    console.log(num);
    num++;
}
// 输出:0, 1, 2, 3, 4

// continue 跳过当前迭代
let x = 0;
while (x < 5) {
    x++;
    if (x === 3) continue;
    console.log(x);
}
// 输出:1, 2, 4, 5

// 注意:continue 使用时要确保迭代语句在正确位置
// 错误示例
let y = 0;
while (y < 5) {
    if (y === 2) continue;  // y 永远是 2,死循环
    console.log(y);
    y++;  // 这行在 continue 后不会执行
}

常见模式

JavaScript
// 条件循环模式
while (condition) {
    // 处理
    updateCondition();  // 更新条件
}

// 无限循环 + break
while (true) {
    let input = getData();
    if (shouldStop(input)) {
        break;
    }
    process(input);
}

// 读取队列
const queue = [1, 2, 3, 4, 5];
while (queue.length > 0) {
    const item = queue.shift();
    console.log(item);
}

// 链表遍历
function traverseLinkedList(node) {
    while (node !== null) {
        console.log(node.value);
        node = node.next;
    }
}

避免死循环

JavaScript
// 死循环(条件永远为 true)
while (true) {
    // 没有 break,无限执行
}

// 忘记更新条件变量
let i = 0;
while (i < 5) {
    console.log(i);
    // 忘记 i++,死循环
}

// 条件更新位置错误
let j = 0;
while (j < 5) {
    if (j === 2) continue;
    console.log(j);
    j++;  // j=2 时 continue 跳过这行,死循环
}

// 正确写法
let k = 0;
while (k < 5) {
    k++;  // 更新放在前面
    if (k === 3) continue;
    console.log(k);
}

注意事项

  • 条件变量必须在循环体内更新,否则会死循环
  • 条件初始为 false 时,循环体一次都不执行
  • 注意 continue 的位置,避免跳过更新语句
  • 适合不确定次数、需要条件控制的场景
JavaScript
// 条件为 false 时不执行
let condition = false;
while (condition) {
    console.log('不会执行');
}

// 对比 do-while:至少执行一次
do {
    console.log('会执行一次');
} while (false);

要点总结

  • while 是前测试循环:先判断条件,再执行循环体
  • 必须在循环体内更新条件变量,避免死循环
  • 条件初始为 false 时,循环体一次都不执行
  • 适合不确定次数、条件控制的循环场景
  • break 跳出循环,continue 跳过当前迭代
  • 与 for 的区别:while 更适合条件控制,for 更适合计数循环

📝 发现内容有误?点击此处直接编辑

← 上一篇 JavaScript switch 语句
下一篇 → JavaScript 条件语句(if-else)
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库