Intérompre une loop

Résolu
Signaler
Messages postés
34
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
6 juin 2008
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour, je voudrais savoir comment intérompre une loop en plein milieu. Exemple:

For i = 1 to 10000
    if Int(Rnd()*3+1) = 3 Then 'ici!!
Next

12 réponses

Messages postés
149
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
23 juillet 2009

Tu fait un exit for
Messages postés
149
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
23 juillet 2009

La variable booléenne n'est pas une obligation. Tout dépend du traitement qu'il doit faire après
Messages postés
561
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010

Yes et si c'est un loop tu fais un Exit Do. Si tu veux sortir d'une fonction tu fais Exit Function, d'une Sub Exit Sub ^^ ............
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
minute, là ...
Il va te falloir en plus laisser la place (doevents)
et utiliser une booléenne ...conditionnelle... si tu veux l'interrompre dynamiquement à la demande.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut à tous,

Et oui c'est bien beua de sortir d'un for..next, mais sans avoir une info de sortie prématurée comment tu vas le savoir ? Hein !! Comme le fait remarqué Jmfmarques, utilise une variable Boolean, ainsi en vérifiant celle-ci, tu sais si tu es sortis de la boucle ou pas....

Dim Sortie As Boolean

For i = 1 to 10000    if Int(Rnd()*3+1) 3 Then Sortie True : Exit For
Next

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
168
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
28 juillet 2009
1
Avis perso : Il me semble que un Do while serait plus adapté.    Exit for, c'est un peu spaghetti.   C'est moins décrié qu'un Goto mais pas loin quand même...

Christophe
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
cavo798, je ne vois aucun rapport entre un Exit For  et un Goto...(?)
Pour moi, lorsque je l'utilise, c'est essentiel et n'a rien à voir avec un Goto qui te promène de haut en bas.

Avis perso aussi...  ¦¬)

MPi
Messages postés
168
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
28 juillet 2009
1
Il me semble que l'utilisation d'un For .. Next ne devrait être utilisé que lorsqu'on sait combien de fois on doit faire la boucle.   Si on quitte la boucle "en cours de route", c'est que la condition de fin n'est pas le nombre d'itération mais la rencontre d'une condition et dans ce cas, me semble-t-il, un Do While p.e. serait plus opportun.  Ce n'est qu'un avis perso et c'est évident, très puriste

Christophe
Messages postés
168
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
28 juillet 2009
1
Il me semble que l'utilisation d'un For .. Next ne devrait être utilisé que lorsqu'on sait combien de fois on doit faire la boucle.   Si on quitte la boucle "en cours de route", c'est que la condition de fin n'est pas le nombre d'itération mais la rencontre d'une condition et dans ce cas, me semble-t-il, un Do While p.e. serait plus opportun.  Ce n'est qu'un avis perso et c'est évident, très puriste

Christophe
Messages postés
168
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
28 juillet 2009
1
Il me semble que l'utilisation d'un For .. Next ne devrait être utilisé que lorsqu'on sait combien de fois on doit faire la boucle.   Si on quitte la boucle "en cours de route", c'est que la condition de fin n'est pas le nombre d'itération mais la rencontre d'une condition et dans ce cas, me semble-t-il, un Do While p.e. serait plus opportun.  Ce n'est qu'un avis perso et c'est évident, très puriste

Christophe
Messages postés
168
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
28 juillet 2009
1
Oups...   Ma réponse apparaît trois fois.    Si un admin passe par ici, peut-il en supprimer deux.     Il semble que je ne dispose pas de cette possibilité.

Christophe
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Et moi je pense qu'une boucle For...Next ou Do...While ou Do...Until est finalement la même chose ou à peu près.
Effectivement, c'est la condition qui décide si oui ou non on sort.

Si j'ai 1000 lignes à lire et que je cherche la valeur 5, avec une ou l'autre des boucles je vais demander de sortir (Exit For, Exit Do) quand la valeur est trouvée.

C'est plus dans cette optique que je voyais Exit comme indispensable...
Bonne fin de week-end...

MPi