一、while循环是什么?

想象一下,你有一个任务:需要重复做某件事,直到达到某个条件才停止。比如:

👉 真实生活例子: 喝水直到不口渴为止

1. 检查是否口渴(条件判断)

2. 如果口渴,喝一口水(执行动作)

3. 再次检查是否口渴(条件判断)

4. 重复直到不口渴为止(结束循环)

在编程中,while循环就是做类似的事情:只要条件满足,就重复执行代码块

💡 关键点:使用while循环时,你不需要提前知道具体要循环多少次,只需要知道在什么条件下应该停止循环。

二、while循环语法

while (条件) {
    // 要重复执行的代码
}

详细解释:

1. while关键字:告诉JavaScript下面要开始一个循环

2. 条件(括号内的部分):每次循环前检查的条件,必须是一个布尔值(true或false)

3. 花括号 {}:包含要重复执行的代码块

示例:从1数到5

let count = 1;  // 初始化计数器

while (count <= 5) {  // 条件:count小于等于5
    console.log(count);
    count++;  // 更新计数器(重要!)
}

输出:1 2 3 4 5

三、while循环执行流程

开始
检查条件
条件为真?
执行循环体内的代码
返回检查条件
条件为假?
结束循环

执行步骤详解:

  1. 计算条件表达式(结果是true或false)
  2. 如果条件为true,执行花括号内的代码
  3. 执行完代码块后,再次检查条件
  4. 如果条件仍为true,重复步骤2和3
  5. 如果条件为false,跳出循环,执行后面的代码

四、重要!避免无限循环

⚠️ 警告: 如果循环条件永远为true,循环就会无限执行下去,这叫"无限循环",会导致程序卡死!

常见错误:忘记更新循环变量

// 危险!会无限循环的例子
let num = 1;
while (num <= 5) {
    console.log(num);
    // 忘记写 num++,num永远等于1,条件永远成立
}

如何避免无限循环?

  • 确保循环内有改变条件的语句
  • 使用break语句作为安全阀(后面会讲)
  • 测试时先尝试小数值

五、循环控制:break和continue

break语句

立即跳出整个循环(即使条件还没变成false)

let i = 1;
while (i <= 10) {
    if (i === 5) {
        break;  // 当i等于5时跳出循环
    }
    console.log(i);
    i++;
}
// 输出:1 2 3 4

continue语句

跳过本次循环剩余的代码,直接开始下一次循环

let j = 0;
while (j < 5) {
    j++;
    if (j === 3) {
        continue;  // 跳过本次循环
    }
    console.log(j);
}
// 输出:1 2 4 5(跳过了3)

六、while循环常见用途

  • 用户输入验证:直到用户输入正确的值为止
  • 游戏循环:游戏运行直到玩家失败或退出
  • 读取数据:从文件或网络读取直到没有数据
  • 动画效果:持续移动元素直到到达目标位置
  • 等待条件:等待某个资源加载完成

示例:用户输入验证

// 假设这是一个简单的密码检查
let password;
while (password !== "123456") {  // 直到输入正确密码
    password = prompt("请输入密码:");  // 弹出输入框
}
alert("登录成功!");

七、while循环 vs do-while循环

特性 while循环 do-while循环
语法 while (条件) {代码} do {代码} while (条件);
执行顺序 先检查条件,再决定是否执行 先执行一次代码,再检查条件
最少执行次数 0次(条件一开始就是false) 至少1次
适用场景 条件可能一开始就不满足的情况 至少要执行一次的情况
示例 搜索数组直到找到元素 显示菜单直到用户选择退出

八、练习题

1. 使用while循环计算1+2+3+...+10的和

2. 使用while循环遍历数组:['苹果', '香蕉', '橙子'],并打印每个水果

3. 使用while循环找出1-100之间能被7整除的第一个数

九、总结

  • while循环:只要条件为真,就重复执行代码
  • 核心三要素:初始化变量 → 循环条件 → 更新变量
  • 切记: 避免无限循环,循环体内必须改变循环条件
  • break用于立即退出整个循环
  • continue用于跳过本次循环剩余代码
  • 当不确定循环次数但知道终止条件时,while循环特别有用

💪 编程建议: 作为初学者,多练习写while循环,尝试解决实际问题。可以从简单计数开始,逐步尝试更复杂的逻辑!