29

forループから抜け出すために、また//code insideジャンプから直接へのコマンドを使用する必要があります//code after

//code before
for(var a in b)
    {
    switch(something)
        {
        case something:
            {
            //code inside
            break;
            }
        }
    }
//code after
4

8 に答える 8

27

終了する必要がある場合は、別の変数を使用してフラグを立てます。

var b = { firstName: 'Peter', lastName: 'Smith' };
var keepGoing = true;
for (var a in b) {
  switch (true) {
    case 1:
      keepGoing = false;
      break;
  }
  if (!keepGoing) break;
  console.log('switch end');
}
console.log('for end');

于 2013-06-12T18:25:57.997 に答える
26

使用できますlabel。ラベル付きのステートメントを用意し、そのラベルに休憩します。outerLoopここで使用したラベルです。

//code before
outerLoop:
for (var a in b) {
    switch (something) {
        case 'case1':
            //code inside
            break outerLoop;
    }
}
//code after
于 2013-06-12T18:27:44.220 に答える
19

break残念ながら、Javascript では複数のレベルを通過することができません。これを行う最も簡単な方法はreturn、無名関数を作成してステートメントの力を活用することです。

//code before
(function () {
    for (var a in b) {
        switch (something) {
        case something:
            {
                //code inside
                return;
            }
        }
    }
}());
//code after

これreturnは、関数を離れて暗黙的にループを離れ、直接移動するため機能します。code after


コメントで指摘されているように、私の上記の回答は正しくなく、私が賛成したChubby Boyの回答のbreakように、マルチレベルにすることができます。

これが賢明かどうかは、7 年後の観点からはやや疑問です。

于 2013-06-12T18:29:07.067 に答える
9

それはあなたが達成したいことによります...私がよく行うことの1つは、次のようなことです。

    //code before
for(var a in b)
{
    var breakFor = false;
    switch(something)
    {
        case something:
        {
            //code inside
            breakFor = true;
            break;
        }
    }
    if (breakFor)
        break;
}
//code after
于 2013-06-12T18:26:44.317 に答える
2

ブレークするループ/スイッチを指定できます。

function foo ()
{
    dance:
    for(var k = 0; k < 4; k++){
        for(var m = 0; m < 4; m++){
            if(m == 2){
                break dance;
            }
        }
    }
}

この回答を参照してください。

于 2013-06-12T18:29:56.463 に答える
0

少なくとも概念的には、コード フローを制御する最も簡単な方法の 1 つは、条件付きステートメントを使用することです。

var done = false;
//code before for loop
for(var a in b){
    switch(switchParameter){
        case firstCase:
            //code inside
            done = true;
            break;
        }
    }
    if(done)
        break;
}
//code outside of for loop
于 2013-06-12T18:29:07.597 に答える