1

你能解释一下如何在与 break 交互的语句上使用标签:switch、while、do 和 for。

请举例。

4

4 回答 4

10

通常,我看到它突破到外部循环

var i, j;

dance: for (i = 0; i < 20; i++) {
    for (j = 0; j < 20; j++) {
        console.log(i+'-'+j);
        if (j === 10) { //normally, break only breaks the immediate loop
            break dance; //this one breaks the loop labelled as dance
        }
    }
}​

//continue here after i = 0,j = 10
于 2012-05-28T14:15:15.120 回答
1

这是一篇关于 JS 中的 GOTO 标签的好文章。我从不使用 GOTO 标签逻辑,所以我今天实际上也学到了一些新东西。

文章中的JS代码:

var pastures = getPastures();
 var i, pastureLen = pastures.length;

pastureLoop:
 for (i = 0; i < pastureLen; i++)
 {
    var pasture = pastures[i];
    var cows = pasture.getCows();

   var j, numCows = cows.length;
    for (j = 0; j < numCows; j++)
    {
       var cow = cows[j];
       if (cow.isEating())
          { continue pastureLoop; }
    }

   // No cows were eating, so fire the callback for pasture[i]
    pasture.executeCallback();    // or whatever
 }
于 2012-05-28T14:16:18.787 回答
1

引用 Mozilla 开发者网络 语言参考

提供带有标识符的语句,您可以使用 break 或 continue 语句引用该标识符。

例如,您可以使用标签来标识循环,然后使用 break 或 continue 语句来指示程序是应该中断循环还是继续执行。

请注意,他们还说:

标签在 JavaScript 中不是很常用,因为它们使程序更难阅读和理解。尽可能避免使用标签,根据具体情况,更喜欢调用函数或抛出错误

于 2012-05-28T14:15:33.463 回答
0

不要使用标签。

例子:

// no label
while (condition) {
    // do something
}
于 2012-05-28T14:15:17.080 回答