Intérompre une loop

Résolu
Joke758 Messages postés 34 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 6 juin 2008 - 23 mai 2007 à 14:20
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 27 mai 2007 à 01:05
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

Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
23 mai 2007 à 14:21
Tu fait un exit for
3
Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
23 mai 2007 à 15:15
La variable booléenne n'est pas une obligation. Tout dépend du traitement qu'il doit faire après
3
cs_yvesyves Messages postés 561 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 11 octobre 2010
23 mai 2007 à 14:23
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 ^^ ............
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 mai 2007 à 14:33
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
23 mai 2007 à 14:51
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

 
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
25 mai 2007 à 13:37
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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
25 mai 2007 à 23:17
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
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
26 mai 2007 à 21:48
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
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
26 mai 2007 à 21:48
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
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
26 mai 2007 à 21:48
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
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
26 mai 2007 à 21:50
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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
27 mai 2007 à 01:05
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
0
Rejoignez-nous