|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 ;-)] |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
David BERCOT a écrit :
> 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=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 ? A ton avis ?-) Dans la plupart des langages que je connais, l'instruction 'return' stoppe l'execution de la fonction... |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
David BERCOT a écrit :
> 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=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 ? A ton avis ?-) Dans la plupart des langages que je connais, l'instruction 'return' stoppe l'execution de la fonction... |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On 13 sep, 11:57, Bruno Desthuilliers <bruno.
42.desthuilli...@wtf.websiteburo.oops.com> wrote: > David BERCOT a écrit : > > > 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=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 ? > > 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. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
On 13 sep, 11:57, Bruno Desthuilliers <bruno.
42.desthuilli...@wtf.websiteburo.oops.com> wrote: > David BERCOT a écrit : > > > 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=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 ? > > 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. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Bonjour à Bruno Desthuilliers
<bruno.42.desthuilliers@wtf.websiteburo.oops.com > qui nous a écrit : > David BERCOT a écrit : >> 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 ;-) |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Bonjour à Bruno Desthuilliers
<bruno.42.desthuilliers@wtf.websiteburo.oops.com > qui nous a écrit : > David BERCOT a écrit : >> 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 ;-) |
|
![]() |
| Outils de la discussion | |
|
|