break默认只跳出最内层循环,需用带标签的break(如outer:)配合break outer;才能跳出指定外层循环。

JavaScript 中的 break 默认只跳出**当前最内层循环**,无法直接跳出外层循环。若想从嵌套循环中精准跳转(比如跳出两层甚至多层),需配合 带标签的 break(labeled break)使用。
给外层循环加标签,再用 break 跳到它
语法很简单:在 for/while 循环前加一个标识符 + 冒号(如 outer:),然后在内层用 break outer; 即可直接跳出该标签对应的循环。
例如查找二维数组中第一个值为 5 的元素,并立即退出所有循环:
const matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let found = false; outer: for (let i = 0; i
标签名要合法且唯一,不能跨作用域复用
标签名遵循变量命名规则(字母、$、_ 开头,不能是关键字),且在同一作用域内不能重复。它不创建作用域,也不影响变量访问,只是个跳转标记。
- ✅ 正确:
searchLoop:、init:、retry_1: - ❌ 错误:
for:(关键字)、1st:(数字开头)、searchLoop:与searchLoop:在同一作用域重复
替代方案:用函数封装 + return 更清晰
如果嵌套较深或逻辑复杂,用带标签的 break 可能降低可读性。此时把嵌套循环封装成函数,用 return 退出整个函数,语义更明确:
function findValue(matrix, target) {
for (let i = 0; i
注意:continue 也支持标签,但行为不同
continue labelName; 会跳过当前标签循环的本轮剩余部分,直接进入下一轮(仅对 for、while 有效)。它不是退出循环,而是“跳过本次”。例如跳过某一行的处理:
skipRow: for (let i = 0; i
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











