Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Équivalent à 'exit for' ?

3 réponses
Avatar
David BERCOT
Bonjour,

J'ai encore un petit souci dans un traitement.
Au milieu d'une boucle "for" (par exemple for (i=3D0, i < 10, i++)), je
voudrais sortir brutalement.
En effet, si par exemple, quand i=3D4, je trouve une condition qui ne
n=E9cessite pas d'aller plus loin, je pr=E9f=E8re 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=3D10, je suppose que je vais sortir mais je perdrais alors la valeur
r=E9elle de sortie de boucle...
Petite question li=E9e : 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 =E0 s'ex=E9cuter ? Et donc, si jamais j'ai un appel ult=E9rieur
inconditionnel =E0 return true, je suppose que je perds le b=E9n=E9fice de
mon return false ?

Merci d'avance.

David [qui esp=E8re avoir =E9t=E9 clair dans ses explications ;-)]

3 réponses

Avatar
Bruno Desthuilliers
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, 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);


Si jamais je mets
i, 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 ?


A ton avis ?-)

Dans la plupart des langages que je connais, l'instruction 'return'
stoppe l'execution de la fonction...

Avatar
David BERCOT
On 13 sep, 11:57, Bruno Desthuilliers <bruno.
wrote:

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 val eurs
suivantes. Dans certaines langages, on peut donc faire un 'exit for'.
Apparemment, ce n'est pas possible en JavaScript.


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

Si jamais je mets
i, 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 ?


A ton avis ?-)

Dans la plupart des langages que je connais, l'instruction 'return'
stoppe l'execution de la fonction...


Merci beaucoup. Réponses extrêmement claires ;-)

David.


Avatar
Cenekemoi
Bonjour à Bruno Desthuilliers
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, 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);


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