PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > Équivalent à 'exit for' ?
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Équivalent à 'exit for' ?

Réponse
 
LinkBack Outils de la discussion
Vieux 13/09/2007, 10h44   #1
David BERCOT
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Équivalent à 'exit for' ?

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

  Réponse avec citation
Vieux 13/09/2007, 10h57   #2
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Équivalent à 'exit for' ?

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...

  Réponse avec citation
Vieux 13/09/2007, 11h55   #3
David BERCOT
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Équivalent à 'exit for' ?

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.

  Réponse avec citation
Vieux 13/09/2007, 12h56   #4
Cenekemoi
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Équivalent à 'exit for' ?

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

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 05h17.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,09587 seconds with 12 queries