Appearance
JavaScript while 循环
while 循环的概念
while 循环是 JavaScript 中的一种循环语句,它用于在指定条件为 true 的情况下重复执行一段代码。while 循环特别适合未知循环次数的情况,只要条件满足就会一直执行。
while 循环的基本语法
javascript
while (condition) {
// 循环体代码
}语法说明:
condition:条件表达式,每次循环前检查,如果为 true,则执行循环体;如果为 false,则退出循环- 循环体:要重复执行的代码块
while 循环的示例
1. 基本用法
javascript
// 循环输出 0 到 4
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
// 输出:
// 0
// 1
// 2
// 3
// 42. 递减循环
javascript
// 循环输出 4 到 0
let i = 4;
while (i >= 0) {
console.log(i);
i--;
}
// 输出:
// 4
// 3
// 2
// 1
// 03. 基于用户输入的循环
javascript
// 模拟用户输入,直到输入 'quit'
let input = "";
while (input !== "quit") {
// 在实际应用中,这里会使用 prompt() 或其他方式获取用户输入
input = "continue"; // 模拟输入
console.log("Processing...");
// 为了避免无限循环,这里手动设置 input 为 'quit'
if (Math.random() > 0.7) {
input = "quit";
}
}
console.log("Loop exited");4. 遍历数组
javascript
const fruits = ["apple", "banana", "orange", "grape"];
let i = 0;
while (i < fruits.length) {
console.log(fruits[i]);
i++;
}
// 输出:
// apple
// banana
// orange
// grape5. 计算总和
javascript
const numbers = [1, 2, 3, 4, 5];
let i = 0;
let sum = 0;
while (i < numbers.length) {
sum += numbers[i];
i++;
}
console.log("Sum:", sum); // 输出: Sum: 15do...while 循环
do...while 循环是 while 循环的一种变体,它会先执行一次循环体,然后再检查条件:
基本语法
javascript
do {
// 循环体代码
} while (condition);示例
javascript
// 循环输出 0 到 4
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
// 输出:
// 0
// 1
// 2
// 3
// 4
// 即使条件一开始就为 false,也会执行一次循环体
let j = 5;
do {
console.log(j);
j++;
} while (j < 5);
// 输出:
// 5while 循环的最佳实践
1. 确保循环条件最终会变为 false
确保循环条件最终会变为 false,以避免无限循环:
javascript
// 好的做法
let i = 0;
while (i < 5) {
console.log(i);
i++; // 递增 i,确保条件最终会变为 false
}
// 不好的做法(无限循环)
let i = 0;
while (i < 5) {
console.log(i);
// 没有递增 i,条件永远为 true
}2. 初始化循环变量
在循环开始前初始化循环变量:
javascript
// 好的做法
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
// 不好的做法(未初始化循环变量)
while (i < 5) {
console.log(i);
i++;
}3. 避免在循环体中修改循环变量的类型
避免在循环体中修改循环变量的类型,以免导致意外的循环行为:
javascript
// 不好的做法
let i = 0;
while (i < 5) {
console.log(i);
i = "string"; // 修改了循环变量的类型
}
// 正确
let i = 0;
while (i < 5) {
console.log(i);
i++;
}4. 合理使用 while 循环和 for 循环
- while 循环:适合未知循环次数的情况
- for 循环:适合已知循环次数的情况
javascript
// 好的做法:未知循环次数
let input;
while ((input = prompt("Enter a number (0 to exit):")) !== "0") {
console.log("You entered:", input);
}
// 好的做法:已知循环次数
for (let i = 0; i < 5; i++) {
console.log(i);
}5. 使用 break 语句退出循环
在某些情况下,可以使用 break 语句提前退出循环:
javascript
let i = 0;
while (i < 10) {
console.log(i);
i++;
if (i === 5) {
break; // 提前退出循环
}
}
// 输出:
// 0
// 1
// 2
// 3
// 4while 循环的常见错误
1. 无限循环
最常见的错误是无限循环,即循环条件永远为 true:
javascript
// 错误:无限循环
let i = 0;
while (i < 5) {
console.log(i);
// 忘记递增 i
}
// 错误:无限循环
while (true) {
console.log("Infinite loop");
// 没有 break 语句
}2. 条件表达式错误
javascript
// 错误:使用了赋值运算符 = 而不是比较运算符 <
let i = 0;
while ((i = 5)) {
console.log(i);
i++;
}
// 正确
let i = 0;
while (i < 5) {
console.log(i);
i++;
}3. 循环体缺少花括号
javascript
// 错误:循环体缺少花括号,只有第一条语句会被循环执行
let i = 0;
while (i < 5) console.log(i);
i++; // 这条语句只会执行一次,导致无限循环
// 正确
let i = 0;
while (i < 5) {
console.log(i);
i++;
}4. 未初始化循环变量
javascript
// 错误:未初始化循环变量,i 的值为 undefined
while (i < 5) {
console.log(i);
i++;
}
// 正确
let i = 0;
while (i < 5) {
console.log(i);
i++;
}while 循环与 for 循环的比较
1. 语法差异
javascript
// while 循环
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
// for 循环
for (let i = 0; i < 5; i++) {
console.log(i);
}2. 使用场景
while 循环:
- 未知循环次数的情况
- 基于条件的循环
- 更灵活的循环控制
for 循环:
- 已知循环次数的情况
- 遍历数组或对象
- 更简洁的语法
3. 性能比较
在大多数情况下,while 循环和 for 循环的性能差异很小,可以忽略不计。选择哪种循环主要取决于具体的使用场景和代码可读性。
小结
while 循环是 JavaScript 中的一种重要循环语句,它用于在指定条件为 true 的情况下重复执行一段代码。while 循环特别适合未知循环次数的情况,只要条件满足就会一直执行。do...while 循环是 while 循环的一种变体,它会先执行一次循环体,然后再检查条件。在使用 while 循环时,应该遵循最佳实践,确保循环条件最终会变为 false,以避免无限循环。