JavaScript 教程
← 
 →

JavaScript Break 和 Continue 语句


break 语句用于跳出循环。

continue 用于跳过循环中的一个迭代。


Break 语句

我们已经在本教程之前的章节中见到过 break 语句。它用于跳出 switch() 语句。

break 语句可用于跳出循环。

continue 语句跳出循环后,会继续执行该循环之后的代码(如果有的话):

实例

for (i = 0; i < 10; i++) {
    if (i == 3) {
        break;
    }
    x = x + "The number is " + i + "<br>";
}
尝试一下 »

由于这个 if 语句只有一行代码,所以可以省略花括号:

for (i=0;i<10;i++)
{
    if (i==3) break;
    x=x + "The number is " + i + "<br>";
}

Continue 语句

continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。 该例子跳过了值 3:

实例

for (i = 0; i <= 10; i++) {
    if (i == 3) continue;
    x = x + "The number is " + i + "<br>";
}
尝试一下 »

JavaScript 标签

正如您在 switch 语句那一章中看到的,可以对 JavaScript 语句进行标记。

如需标记 JavaScript 语句,请在语句之前加上冒号:

label:
statements

break 和 continue 语句仅仅是能够跳出代码块的语句。

语法:

break labelname; 
 
continue labelname;

continue 语句(带有或不带标签引用)只能用在循环中。

break 语句(不带标签引用),只能用在循环或 switch 中。

通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:

实例

cars = ["BMW", "Volvo", "Saab", "Ford"];
list: {
    document.write(cars[0] + "<br>");
    document.write(cars[1] + "<br>");
    document.write(cars[2] + "<br>");
    break list;
    document.write(cars[3] + "<br>");
    document.write(cars[4] + "<br>");
    document.write(cars[5] + "<br>");
}
尝试一下 »
← 
 →

 

笔记列表

关于 JavaScript 标签与 break 和 continue 一起使用的理解。

break 的作用是跳出代码块, 所以 break 可以使用与循环和 switch 等

continue 的作用是进入下一个迭代, 所以 continue 只能用于循环的代码块。

代码块: 基本上是{}大括号之间

然后:

1. 默认标签的情况(除了默认标签情况,其他时候必须要有名标签,否则会有惊喜)

当 break 和 continue 同时用于循环时,没有加标签,此时默认标签为当前”循环”的代码块。

当 break 用于 switch 时,默认标签为当前的 switch 代码块:

有名标签的情况

cars=["BMW","Volvo","Saab","Ford"];
list:
{
	document.write(cars[0] + "");
	document.write(cars[1] + "");
	document.write(cars[2] + "");
	break list;
	document.write(cars[3] + "");
	document.write(cars[4] + "");
	document.write(cars[5] + "");
}

上述break list;会跳出list的代码块。如果将break换成continue会有惊喜,违反了明确中的第二点,因为list只是个普通代码块,而不是循环。除非list写成如下形式
list:

for(var i=0; i<10; ++i)
{
	continue list;
}

有了标签,可以使用break和continue在多层循环的时候控制外层循环。

例如下面:

outerloop:
for (var i = 0; i < 10; i++)
{
	innerloop:
		for (var j = 0; j < 10; j++)
		{
		if (j > 3)
		{
			break;
		}
		if (i == 2)
		{
			break innerloop;
		}
		if (i == 4)
		{
			break outerloop;
		}
		document.write("i=" + i + " j=" + j + "");
	}
}