JavaScript break 语句

当遇到 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` 语句在 forwhile 循环中的工作方式。

Working of break statement in JavaScript
JavaScript break 语句的工作原理

注意:`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

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` 永远不会在输出中显示。

Using break inside a nested loop
在嵌套循环中使用 break
使用带标签的 break。

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

Working of labeled break statement in JavaScript
JavaScript 中带标签的 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。

我们也可以在 `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` 语句。


另请阅读

在我们结束之前,让我们来测试一下你对 JavaScript break 语句的掌握程度!你能解决下面的挑战吗?

挑战

编写一个函数来检查一个数字是否为素数。

  • 如果一个数字只有两个不同的因子:**1** 和它本身,那么它就是素数。
  • 例如,**3** 是一个素数,因为它只有两个不同的因子:**1** 和 **3**。
  • 如果 `num` 是素数,则返回 `"Prime"`;否则,返回 `"Not Prime"`。

视频:JavaScript break 语句

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战