Перерыв для цикла изнутри корпуса коммутатора в Javascript - программирование
Подтвердить что ты не робот

Перерыв для цикла изнутри корпуса коммутатора в Javascript

Какую команду я должен использовать, чтобы выйти из цикла for, также из //code inside перейти непосредственно к //code after

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

Ответ 1

К сожалению, Javascript не разрешает break через несколько уровней. Самый простой способ сделать это - использовать силу оператора return, создав анонимную функцию:

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

Это работает, потому что return оставляет функцию и поэтому неявно покидает цикл, перемещая вас прямо к code after

Ответ 2

используйте другую переменную, чтобы указать, когда вам нужно выйти:

var keepGoing = true;
for (var a in b){
  switch (something){
    case something:
      keepGoing = false;
      break;
  }
  if (!keepGoing) break;
}

пример

Ответ 3

Вы можете использовать label. Подпишите ярлык и перейдите на этот ярлык. outerLoop - это метка, которую я использовал здесь.

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

Ответ 4

это зависит от того, что вы хотите выполнить... одна вещь, которую я обычно делаю, это что-то вроде этого:

    //code before
for(var a in b)
{
    var breakFor = false;
    switch(something)
    {
        case something:
        {
            //code inside
            breakFor = true;
            break;
        }
    }
    if (breakFor)
        break;
}
//code after

Ответ 5

Вы можете определить, какой цикл/переключатель нужно сломать.

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

См. этот ответ.

Ответ 6

Я всегда нахожу использование условных операторов одним из самых простых способов управления потоком кода, по крайней мере концептуально.

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

Ответ 7

for(var i=0; i<b.length; i++) {
   switch (something) {
       case 'something1':
           i=b.length;
   }
}

Когда переменная итерации i достигает конца цикла, она прерывается. Но можно заставить переменную итерации достигать конца цикла.