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

Mozilla Developer Network Language Referenceの引用:

break または continue ステートメントを使用して参照できる識別子を持つステートメントを提供します。

たとえば、ラベルを使用してループを識別し、break または continue ステートメントを使用して、プログラムがループを中断するか実行を継続するかを示すことができます。

彼らはまた言うことに注意してください:

ラベルはプログラムを読みにくくするため、JavaScript ではあまり一般的に使用されません。可能な限りラベルの使用を避け、場合によっては関数の呼び出しまたはエラーのスローを優先します

于 2012-05-28T14:15:33.463 に答える
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 に答える
0

ラベルは使用しないでください。

例:

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