Quelle commande je dois utiliser pour sortir de la boucle for, également de //code inside
sauter directement à //code after
//code before
for(var a in b)
{
switch(something)
{
case something:
{
//code inside
break;
}
}
}
//code after
Malheureusement, Javascript ne permet pas break
ing à travers plusieurs niveaux. Pour ce faire, le moyen le plus simple consiste à exploiter le pouvoir de l'instruction return
en créant une fonction anonyme:
//code before
(function () {
for (var a in b) {
switch (something) {
case something:
{
//code inside
return;
}
}
}
}());
//code after
Cela fonctionne car return
quitte la fonction et donc implicitement la boucle, ce qui vous amène directement à code after
utilisez une autre variable pour signaler quand vous devez sortir:
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');
Vous pouvez utiliser label
. Ayez une déclaration étiquetée et respectez cette étiquette. outerLoop
est l'étiquette que j'ai utilisée ici.
//code before
outerLoop:
for (var a in b) {
switch (something) {
case 'case1':
//code inside
break outerLoop;
}
}
//code after
cela dépend de ce que vous voulez accomplir ... une chose que je fais couramment est quelque chose comme ceci:
//code before
for(var a in b)
{
var breakFor = false;
switch(something)
{
case something:
{
//code inside
breakFor = true;
break;
}
}
if (breakFor)
break;
}
//code after
Vous pouvez dire quelle boucle/commutateur briser.
function foo ()
{
dance:
for(var k = 0; k < 4; k++){
for(var m = 0; m < 4; m++){
if(m == 2){
break dance;
}
}
}
}
Voir cette réponse .
for(var i=0; i<b.length; i++) {
switch (something) {
case 'something1':
i=b.length;
}
}
Lorsque la variable d'itération i
atteint la fin de la boucle, elle se rompt. Mais on peut forcer la variable d'itération à atteindre la fin de la boucle.
Je trouve toujours que l’utilisation d’instructions conditionnelles est l’un des moyens les plus simples de contrôler le flux de code, du moins sur le plan conceptuel.
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