一 for循环
1. 基本 for 循环
这是最常见的循环形式,用于重复执行代码块直到满足某个条件:
for (let i = 0; i < 5; i++) {
console.log(i); // 输出 0 1 2 3 4
}
- let i = 0:初始化表达式,设置循环变量 i 的初始值。
- i < 5:条件表达式,循环在这个条件为 true 时继续执行。
- i++:迭代表达式,每次循环后执行,这里是将 i 增加 1。
2 for…of 循环
用于遍历数组或其他可迭代对象(例如字符串)中的值:
const array = [10, 20, 30];
for (const value of array) {
console.log(value); // 输出 10 20 30
}
3. for…in 循环
用于遍历对象的可枚举属性(包括原型链上的属性):
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
console.log(key, obj[key]); // 输出 "a 1", "b 2", "c 3"
}
4. 嵌套 for 循环
你可以在一个 for 循环内部使用另一个 for 循环:
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 2; j++) {
console.log(`i=${i}, j=${j}`);
}
}
// 输出:
// i=0, j=0
// i=0, j=1
// i=1, j=0
// i=1, j=1
// i=2, j=0
// i=2, j=1
5. for 循环与 break 和 continue
- break 语句用于退出循环:
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 退出循环
}
console.log(i); // 输出 0 1 2 3 4
}
- continue 语句用于跳过当前迭代的剩余部分,直接开始下一次迭代:
for (let i = 0; i < 10; i++) {
if (i % 2 === 0) {
continue; // 跳过偶数
}
console.log(i); // 输出 1 3 5 7 9
}
二 while 循环
在 JavaScript 中,while 循环用于在给定条件为 true 时重复执行一个代码块。它的基本语法如下:
1 基本 while 循环
let i = 0;
while (i < 5) {
console.log(i); // 输出 0 1 2 3 4
i++;
}
- let i = 0;:初始化循环变量 i。
- while (i < 5):循环条件,只要条件为 true,就会继续执行循环体。
- i++:在循环体内部更新循环变量,确保最终条件会变为 false,避免无限循环。
2 do…while 循环
do…while 循环和 while 循环类似,但它确保循环体至少执行一次,因为条件检查是在循环体执行之后:
let i = 0;
do {
console.log(i); // 输出 0 1 2 3 4
i++;
} while (i < 5);
3 while 循环与 break 和 continue
- break 语句:用于跳出 while 循环,无论条件是否为 true。
let i = 0;
while (i < 10) {
if (i === 5) {
break; // 退出循环
}
console.log(i); // 输出 0 1 2 3 4
i++;
}
- continue 语句:用于跳过当前循环迭代的剩余部分,立即进入下一次迭代。
let i = 0;
while (i < 10) {
if (i % 2 === 0) {
i++;
continue; // 跳过偶数
}
console.log(i); // 输出 1 3 5 7 9
i++;
}
3 无限循环
如果循环条件始终为 true,循环将永远执行:
while (true) {
console.log("This will run forever!");
// 注意:务必使用 `break` 或其他方法退出循环,避免无限循环
}
在实际使用中,要确保循环条件在某个点会变为 false,以避免无限循环。如果条件依赖于外部因素或复杂逻辑,确保它能在适当时退出是很重要的。
三 JavaScript break 和 continue 语句
在 JavaScript 中,break 和 continue 语句用于控制循环(如 for、while 和 do…while)的执行流程。它们分别用于退出循环和跳过当前迭代。下面是它们的详细用法和示例:
1 break 语句
break 语句用于退出当前循环,无论条件是否为 true。它会立即终止循环的执行并跳出循环体。
例子
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 退出循环
}
console.log(i); // 输出 0 1 2 3 4
}
在这个例子中,当 i 等于 5 时,break 语句会终止 for 循环,因此循环体中的 console.log(i) 只会输出 0 到 4。
2 continue 语句
continue 语句用于跳过当前循环迭代的剩余部分,并立即开始下一次迭代。它不会终止整个循环,只是跳过当前循环中的代码块的剩余部分。
例子
for (let i = 0; i < 10; i++) {
if (i % 2 === 0) {
continue; // 跳过偶数
}
console.log(i); // 输出 1 3 5 7 9
}
在这个例子中,continue 语句会跳过 console.log(i) 对偶数的输出,因此只会输出奇数。
3 使用 break 和 continue 语句的示例
嵌套循环中的 break 和 continue
- break 语句:
当在嵌套循环中使用 break 语句时,它只会终止最内层的循环。如果需要退出所有嵌套的循环,可以使用标签(label)和 break 语句组合。
outerLoop: // 标签
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
if (i === 2 && j === 3) {
break outerLoop; // 退出外层和内层循环
}
console.log(`i=${i}, j=${j}`);
}
}
在这个例子中,当 i 等于 2 且 j 等于 3 时,break outerLoop 会退出两个循环。
- continue 语句:
continue 语句也仅影响到当前所在的循环层级。
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (j === 1) {
continue; // 跳过当前的内层循环迭代
}
console.log(`i=${i}, j=${j}`);
}
}
在这个例子中,当 j 等于 1 时,continue 会跳过内层循环的 console.log 语句,因此只会输出 i 和 j 的组合,其中 j 不等于 1。
4 总结
- break 语句:用于完全退出当前循环。
- continue 语句:用于跳过当前迭代的剩余部分,立即进入下一次迭代。
这两个语句在控制循环流和处理特定条件下的逻辑时非常有用。使用时要确保逻辑清晰,避免产生难以调试的复杂循环行为。