while surrounding statement loop illegal for javascript for-loop switch-statement continue

surrounding - Break for loop desde el interior de la caja del interruptor en Javascript



illegal continue statement: no surrounding iteration statement (7)

Desafortunadamente, Javascript no tiene permitido atravesar múltiples niveles. La forma más sencilla de hacer esto es aprovechar el poder de la declaración de return mediante la creación de una función anónima:

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

Esto funciona porque el return deja la función y, por lo tanto, deja el bucle implícitamente, moviéndolo directamente al code after

Qué comando debo usar, para salir del bucle for, también desde //code inside saltar directamente a //code after

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


Puedes usar la label . Tener una declaración etiquetada y romper con esa etiqueta. outerLoop es la etiqueta que he usado aquí.

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


Siempre me parece que el uso de sentencias condicionales es una de las formas más fáciles de controlar el flujo de código, al menos conceptualmente.

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


Usted puede decir qué bucle / interruptor para romper.

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

Ver esta respuesta


depende de lo que quieras lograr ... una cosa que comúnmente hago es algo como esto:

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


use otra variable para marcar cuando necesite salir:

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'');

example


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

Cuando la variable de iteración i llega al final del bucle, se rompe. Pero uno puede forzar la variable de iteración para llegar al final del bucle.