当遇到 break
语句时,它会立即终止循环。
以下是 `break` 语句的一个快速示例。您可以阅读本教程的其余部分以了解更多信息。
示例
// infinite loop because condition is always true
while (true) {
// get number input from user
let num = Number(prompt("Enter a number: "));
// break condition
if (num == 0) {
break;
}
console.log(num);
}
// Output:
// Enter a number: 5
// 5
// Enter a number: 0
在此示例中,当用户输入 num 为 **0** 时,`break` 语句会终止无限循环。如果输入不为 **0**,循环将继续接收输入并将其打印到屏幕上。
JavaScript break 语句的工作原理
下图显示了 `break` 语句在 for 和 while 循环中的工作方式。

注意:`break` 语句通常用于决策语句中,例如 if...else。
示例 1:JavaScript for 循环中的 break
// Program to print the value of i
for (let i = 1; i <= 5; i++) {
// break condition
if (i == 3) {
break;
}
console.log(i);
}
输出
1 2
在上面的程序中,我们使用 for 循环 来打印从 **1** 到 **5** 的数字。请注意 `if` 语句中 `break` 的使用。
if(i == 3) {
break;
}
在这里,当 i 的值变为 **3** 时,会执行 `break` 语句,从而终止循环。
因此,输出不包含大于或等于 **3** 的值。
示例 2:JavaScript while 循环中的 break
我们可以使用 `break` 语句终止 `while` 循环。例如:
// Program to find the sum of positive numbers
// the while loop runs infinitely
// loop terminates only when user enters a negative number
let sum = 0;
// infinite loop
while (true) {
// get number input
let num = Number(prompt("Enter a number: "));
// terminate the loop if num is negative
if (num < 0)
break;
}
// otherwise, add num to sum
else {
sum += num;
}
}
// print the sum
console.log(`Sum: ${sum}`);
输出
Enter a number: 3 Enter a number: 5 Enter a number: 0 Enter a number: 8 Enter a number: -3 Sum: 16
在上面的示例中,我们使用了一个条件始终为 `true` 的 `while` 循环。
while (true) {
// code
}
在循环内部,我们请求用户输入。
- 如果输入值为负数,`num < 0` 将变为 `true`,`break` 语句将终止循环。
- 否则,输入值将被加到 sum 变量中。
if (num < 0) {
break;
}
else {
sum += num;
}
更多关于 JavaScript break
当 `break` 用于两个嵌套循环时,它会终止内部循环。例如:
// nested for loops
// outer loop
for (let i = 1; i <= 3; i++) {
// inner loop
for (let j = 1; j <= 3; j++) {
if (i == 2) {
break;
}
console.log(`i = ${i}, j = ${j}`);
}
}
输出
i = 1, j = 1 i = 1, j = 2 i = 1, j = 3 i = 3, j = 1 i = 3, j = 2 i = 3, j = 3
在上面的程序中,当 `i == 2` 时执行 `break` 语句。它会终止内部循环,并将控制流转移到外部循环。
因此,值 `i = 2` 永远不会在输出中显示。

在使用嵌套循环时,我们可以使用**带标签的 break 语句**来终止外部循环。

如上图所示,`outerloop` 标签标识了外部循环。
当遇到 `break outerloop;` 时,它会退出外部循环,并将控制转移到其后的语句。
让我们看一个例子。
outerloop: for (let i = 1; i <= 3; i++) {
innerloop: for (let j = 1; j <= 3; j++) {
if (j === 3) {
break outerloop;
}
console.log("i = " + i + ", j = " + j);
}
}
输出
i = 1, j = 1 i = 1, j = 2
在上面的示例中,我们为循环标记了
outerloop: for (let i = 1; i <= 3; i++) {...}
innerloop: for (let j = 1; j <= 3; j++) {...}
这有助于我们识别循环。请注意带标签的 `break` 语句的使用
if (j === 3) {
break outerloop;
}
在这里,`break` 语句将终止标记为 `outerloop` 的循环。
我们也可以在 `switch` 语句中使用 `break` 语句来终止一个 case。例如:
let fruit = "Apple";
switch (fruit) {
case "Banana":
console.log("Banana is good!");
break;
case "Apple":
console.log("Apple is tasty!");
break;
default:
console.log("Unknown fruit!");
}
// Output: Apple is tasty!
在此示例中,将执行 `Apple` 的 case,然后 `break` 终止 `switch` 语句。
另请阅读