3.10 break 与 continue
break 和 continue 都会改变循环的正常执行流程,但它们的含义不同。
break:直接结束当前循环。continue:跳过本轮迭代的剩余代码,开始下一轮循环。
正在加载交互实验...
break
当循环中已经完成目标,或者继续循环没有意义时,可以使用 break。
下面的程序判断一个整数是否为素数。只要找到一个能整除 n 的数,就可以确认 n 不是素数,不需要再继续检查。
js
let n = Number(prompt("请输入一个整数:"));
let isPrime = n > 1;
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
isPrime = false;
break;
}
}
if (isPrime) {
console.log(`${n} 是素数`);
} else {
console.log(`${n} 不是素数`);
}这里不需要检查到 n - 1。如果一个数有大于平方根的因子,那么它一定也有一个小于平方根的配对因子,所以检查到 Math.sqrt(n) 就够了。
正在加载概念检查...
continue
continue 不会结束整个循环,而是跳过本轮循环中剩下的代码,直接进入下一轮。
下面的程序计算非负整数的平方和。遇到负数时,本轮直接跳过。
js
const nums = [5, 7, -2, 0, 4, -4, -9, 3, 9, 5];
let sumSquare = 0;
for (const num of nums) {
if (num < 0) {
continue;
}
sumSquare += num * num;
}
console.log("平方和:", sumSquare);输出结果:
text
平方和:205当 num < 0 时,continue 会跳过 sumSquare += num * num,因此负数不会参与计算。
如何选择
如果你想“整个循环到此为止”,用 break。如果你只是想“这一轮不继续做了,下一轮照常开始”,用 continue。
js
for (let x = 1; x <= 5; x++) {
if (x === 3) {
continue;
}
console.log(x);
}输出结果:
text
1
2
4
53 被跳过了,但循环没有结束。
正在加载本节练习...