使用 label 语句配合 break 可以跳出多层循环。具体做法是在外层循环前定义一个标签(如 outer:),在内层循环中通过 break outer; 直接终止该标签指向的整个循环结构,从而一次性退出所有嵌套层级。

如何正确定义和调用 label 以控制 break 行为
在 JavaScript 中,label 本身不执行任何操作,它只是一个标记。要让 break 生效,必须将标签紧跟在循环语句之前,并在 break 后指定该标签名。例如,定义 search: 标签在 for 循环上,当内层条件满足时执行 break search;,程序流会立即跳转到 search 标签后的下一条语句,跳过剩余的所有嵌套循环。

const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
let found = false;
search: for (let i = 0; i <h2>label 与 return 在函数中的作用域差异</h2><p>虽然 <code>return</code> 也能跳出循环,但它同时终止了整个函数的执行。相比之下,<code>break label</code> 仅跳出指定的循环块,允许代码继续执行循环之后的逻辑。这种区别在处理需要“查找并继续”而非“查找并结束”的场景时至关重要。如果目标是找到元素后继续处理后续数据,应使用 <code>break</code>;如果找到即需返回结果或停止整个任务,则使用 <code>return</code>。</p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill12835" title="JavaScript 测试模式"><img
src="https://img.php.cn/upload/skill/001/246/273/6adaf20cf0281539.jpg" alt="JavaScript 测试模式" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill12835" title="JavaScript 测试模式" class="overflowclass">JavaScript 测试模式</a>
<p class="overflowclass">使用 Jest、Vitest 和 Testing Library 实施全面的测试策略,包括单元测试、集成测试和端到端测试,涵盖模拟、测试夹具和测试驱动开发。在编</p>
</div>
<a rel="nofollow" href="/xiazai/skill12835" title="JavaScript 测试模式" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div><p><img src="https://img.php.cn/upload/article/001/242/473/179463414260836.png?x-oss-process=image/resize,p_40" alt="JavaScript 中 label 语句怎么跳出多层循环"></p><pre class="brush:php;toolbar:false;">function processMatrix(matrix) {
let result = [];
search: for (let i = 0; i <h2>当目标值不存在时 label 的行为表现</h2><p>如果内层循环从未触发 <code>break label</code>,程序将正常完成所有迭代,最终退出最外层循环。此时,标签不会改变程序的默认流程,循环会像没有标签一样自然结束。开发者需注意,若未找到目标值,后续代码将继续执行,这可能导致意外状态。因此,在使用 <code>break label</code> 时,应确保有明确的“未找到”处理逻辑,或通过标志变量区分是否成功跳出。</p>
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










