说明
一次从多层嵌套的循环中跳出来。
例如
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`Value at coords (${i},${j})`, '');
// 如果我想从这里退出并直接执行 alert('Done!')
}
}
alert('Done!');
如果在input之后添加break,只会打破内部循环。
使用
可以使用标签来实现
标签的基本使用:
labelName: for (...) {
...
}
修改上述示例:
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`Value at coords (${i},${j})`, '');
// 如果是空字符串或被取消,则中断并跳出这两个循环。
if (!input) break outer; // (*)
// 用得到的值做些事……
}
}
alert('Done!');
上述代码中,break outer 向上寻找名为outer的标签跳出当前循环
标签也可以单独成行
outer:
for (let i = 0; i < 3; i++) { ... }
continue 指令也可以与标签一起使用。在这种情况下,执行跳转到标记循环的下一次迭代。
注意
标签并不允许“跳到”所有位置
标签不允许我们跳到代码的任意位置。
例如,这样做是不可能的:
break label; // 无法跳转到这个标签
label: for (...)
只有在循环内部才能调用 break/continue,并且标签必须位于指令上方的某个位置。
浙公网安备 33010602011771号