Page 1 sur 1

Refresh une boucle While à partir d'une fonction

Posté : jeu. 23 févr. 2017 01:27
par nograd
Bonsoir amis d'Autoit !
Depuis quelques jours je me familiarise avec Autoit, mais j'ai un obstacle, qui malgré mes recherches, me laisse sans réponse ..
J'aimerais savoir s'il est possible de refresh une boucle While (avec ContinueLoop) à partir d'une fonction ?

Code : Tout sélectionner

func LoopRefresh($i)
	If $i = 2 Then
		ContinueLoop
	Else
		ConsoleWrite($i & @LF)
	Endif
EndFunc


While 1

	LoopRefresh(1)

	LoopRefresh(2)

	LoopRefresh(3)

WEnd
Par exemple ici, le ContinueLoop à la 3eme ligne ne fonctionne pas, car la fonction, malgré que celle-ci soit dans une boucle While, ne permet pas de faire cela.
Mais justement, je voudrais trouver un moyen pour refresh la boucle while et donc là refaire partir du début à partir de la fonction :(

J'ai beau rechercher, je n'ai rien trouvé, si une personne détient une solution je serais vivement preneur !
Merci d'avance, et à bientôt :? !

Re: Refresh une boucle While à partir d'une fonction

Posté : jeu. 23 févr. 2017 08:33
par marcgforce
Bonjour,

ce n'est pas un continueloop que tu dois employer dans une fonction pour lui dire de continuer, mais un return, il retournera au while avec rien dans la besace et reprendra la boucle :
func LoopRefresh($i)
   If $i = 2 Then
      return; pas continueloop
   Else
      ConsoleWrite($i & @LF)
   Endif
EndFunc


While 1

   LoopRefresh(1)

   LoopRefresh(2)

   LoopRefresh(3)

WEnd

Bonne journée :P

Re: Refresh une boucle While à partir d'une fonction  

Posté : jeu. 23 févr. 2017 10:39
par jguinch
et il faut utiliser les codes de retour avec Return, ce qui permet de connaître, entre autres, le résultat d'une fonction :
While 1
   $result = LoopRefresh(1)
   If Not $result Then ContinueLoop

   $result = LoopRefresh(2)
   If Not $result Then ContinueLoop

   $result = LoopRefresh(3)
   If Not $result Then ContinueLoop
WEnd



Func LoopRefresh($i)
   If $i = 2 Then
      return 0; pas continueloop
   Else
      ConsoleWrite($i & @LF)
   Endif
   Return 1
EndFunc
Bon, là on a une boucle infinie....

Re: Refresh une boucle While à partir d'une fonction

Posté : jeu. 23 févr. 2017 17:54
par nograd
Bonjour,
Merci de votre aide, cela marche parfaitement grâce à vous ! :P