JavaScript break 关键字
最后修改于 2025 年 4 月 16 日
在本文中,我们将展示如何使用 JavaScript 中的 break 关键字来控制循环的执行。
break 关键字
break 关键字用于过早地终止循环的执行。 当在循环内部遇到时,它会立即退出循环,而不管循环的条件如何。 这提供了对循环执行的控制。
break 语句可用于 for、while、do...while 和 switch 语句中。 当您需要根据某些条件停止迭代时,它特别有用。
如果没有 break,循环将始终完成所有迭代,除非它们的条件变为 false。 break 语句在控制循环执行流程方面提供了更大的灵活性。
在 for 循环中使用 break 的基本示例
以下示例演示了 break 关键字在 for 循环中的基本用法。
for (let i = 0; i < 10; i++) {
if (i === 5) {
break;
}
console.log(i);
}
此循环通常会运行 10 次,但我们使用 break 在 i 等于 5 时退出。 当执行 break 语句时,循环立即停止。 数字 0 到 4 会被记录到控制台。
$ node main.js 0 1 2 3 4
在 while 循环中使用 break
break 关键字在 while 循环中的工作方式类似。
let count = 0;
while (true) {
console.log(count);
count++;
if (count > 3) {
break;
}
}
此示例显示一个使用 break 终止的无限 while 循环。 如果没有 break 语句,此循环将永远运行。 break 条件检查 count 是否超过 3。
$ node main.js 0 1 2 3
在嵌套循环中使用 break
当在嵌套循环中使用时,break 仅退出最内层的循环。
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (j === 1) {
break;
}
console.log(`i: ${i}, j: ${j}`);
}
}
break 语句仅影响内部循环,其中 j 等于 1。 外部循环继续正常执行。 这表明 break 仅退出一个嵌套级别。
$ node main.js i: 0, j: 0 i: 1, j: 0 i: 2, j: 0
带标签语句的 break
JavaScript 支持带标签的 break 语句以退出外部循环。
outerLoop: for (let i = 0; i < 3; i++) {
innerLoop: for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outerLoop;
}
console.log(`i: ${i}, j: ${j}`);
}
}
在这里,我们使用带标签的 break 在满足特定条件时退出两个循环。 标签 "outerLoop" 标识要从中退出的循环。 这对于同时退出多个嵌套循环非常有用。
$ node main.js i: 0, j: 0 i: 0, j: 1 i: 0, j: 2 i: 1, j: 0
在 switch 语句中使用 break
break 关键字也用于 switch 语句中。
const fruit = 'apple';
switch (fruit) {
case 'banana':
console.log('Yellow fruit');
break;
case 'apple':
console.log('Red fruit');
break;
default:
console.log('Unknown fruit');
}
在 switch 语句中,break 可防止 fall-through 到下一个 case。 如果没有 break,执行将继续到下一个 case 语句。 每个 case 通常应以 break 语句结尾。
$ node main.js Red fruit
Break vs continue
区分 break 和 continue 很重要。
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue;
}
if (i === 4) {
break;
}
console.log(i);
}
此示例显示了这两个关键字的实际应用。 continue 跳过当前迭代,而 break 完全退出循环。 在这里,跳过了数字 2,当 i 达到 4 时,循环结束。
$ node main.js 0 1 3
实际用例:搜索数组
这是一个使用 break 优化搜索的实际示例。
const numbers = [4, 9, 15, 6, 2, 12];
let found = false;
for (let num of numbers) {
if (num > 10) {
found = true;
console.log(`Found number greater than 10: ${num}`);
break;
}
}
if (!found) {
console.log('No numbers greater than 10 found');
}
此代码在数组中搜索第一个大于 10 的数字。 当满足条件时,循环立即中断,从而提高了效率。 如果没有 break,它将不必要地检查所有剩余元素。
$ node main.js Found number greater than 10: 15
来源
在本文中,我们演示了如何使用 break 关键字来控制 JavaScript 中的循环执行。