jsvar x, y; outer: for (x = 0; x < 10; ++x) { for (y = 0; y < 10; ++y) { if (checkSomething(x, y)) { break outer; } } }
js
var x, y; outer: for (x = 0; x < 10; ++x) { for (y = 0; y < 10; ++y) { if (checkSomething(x, y)) { break outer; } } }
学习是最好的投资!
看样子 javascript 的这个语法和 java 差不多,可以参考下《带标签的 break 和 continue (java)》。
不过最好还是不要用标签,通过其它办法来实现你所需要的,比如拆分函数
javascriptfunction inner(x) { for (y = 0; y < 10; ++y) { if (checkSomething(x, y)) { return true } } return false } for (x = 0; x < 10; ++x) { if (inner(x)) { break } }
javascript
function inner(x) { for (y = 0; y < 10; ++y) { if (checkSomething(x, y)) { return true } } return false } for (x = 0; x < 10; ++x) { if (inner(x)) { break } }
如果嵌套代码比较复杂,可以采用 throw
javascriptfunction inner(x) { for (y = 0; y < 10; ++y) { if (checkSomething(x, y)) { throw "done" } } } try { for (x = 0; x < 10; ++x) { inner(x) } } catch (e) { if (e !== "done") { throw e } }
function inner(x) { for (y = 0; y < 10; ++y) { if (checkSomething(x, y)) { throw "done" } } } try { for (x = 0; x < 10; ++x) { inner(x) } } catch (e) { if (e !== "done") { throw e } }
不常用。但是在处理嵌套循环的时候这个东西还是蛮方便的。
看样子 javascript 的这个语法和 java 差不多,可以参考下《带标签的 break 和 continue (java)》。
不过最好还是不要用标签,通过其它办法来实现你所需要的,比如拆分函数
如果嵌套代码比较复杂,可以采用 throw
不常用。但是在处理嵌套循环的时候这个东西还是蛮方便的。