Équivalent à 'exit for' ?
Le
David BERCOT

Bonjour,
J'ai encore un petit souci dans un traitement.
Au milieu d'une boucle "for" (par exemple for (i=0, i < 10, i++)), je
voudrais sortir brutalement.
En effet, si par exemple, quand i=4, je trouve une condition qui ne
nécessite pas d'aller plus loin, je préfère ne pas tester les valeurs
suivantes. Dans certaines langages, on peut donc faire un 'exit for'.
Apparemment, ce n'est pas possible en JavaScript. Si jamais je mets
i=10, je suppose que je vais sortir mais je perdrais alors la valeur
réelle de sortie de boucle
Petite question liée : si ceci se produit dans une fonction qui doit
retourner true ou false et si je fais un return false (mais je suppose
que c'est pareil avec true), est-ce que le reste de la fonction
continue à s'exécuter ? Et donc, si jamais j'ai un appel ultérieur
inconditionnel à return true, je suppose que je perds le bénéfice de
mon return false ?
Merci d'avance.
David [qui espère avoir été clair dans ses explications ;-)]
J'ai encore un petit souci dans un traitement.
Au milieu d'une boucle "for" (par exemple for (i=0, i < 10, i++)), je
voudrais sortir brutalement.
En effet, si par exemple, quand i=4, je trouve une condition qui ne
nécessite pas d'aller plus loin, je préfère ne pas tester les valeurs
suivantes. Dans certaines langages, on peut donc faire un 'exit for'.
Apparemment, ce n'est pas possible en JavaScript. Si jamais je mets
i=10, je suppose que je vais sortir mais je perdrais alors la valeur
réelle de sortie de boucle
Petite question liée : si ceci se produit dans une fonction qui doit
retourner true ou false et si je fais un return false (mais je suppose
que c'est pareil avec true), est-ce que le reste de la fonction
continue à s'exécuter ? Et donc, si jamais j'ai un appel ultérieur
inconditionnel à return true, je suppose que je perds le bénéfice de
mon return false ?
Merci d'avance.
David [qui espère avoir été clair dans ses explications ;-)]
Si, bien sur. Essaie avec 'break':
var res=-1
for (var i = 0; i < 10; i++) {
if (i > 5) {
res = i;
break;
}
}
alert("res : " + res +"ni : " + i);
A ton avis ?-)
Dans la plupart des langages que je connais, l'instruction 'return'
stoppe l'execution de la fonction...
wrote:
Merci beaucoup. Réponses extrêmement claires ;-)
David.
Juste pour compléter cette réponse, on peut également sortir d'une
boucle "for" imbriquée dans une autre avec un "label", ie:
label1: for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (j > 5) {
resi = i; resj = j;
break label1;
}
}
}
Si j > 5, on sort alors des deux boucles "for"...
--
Cordialement, Thierry ;-)