#1 28-05-2010 18:14:40

ptifou78
Banni
Date d'inscription: 26-05-2010
Messages: 56

[AUTOIT] Les boucles [5e tuto]

Bonjour,

La notion de boucle est énormément utilisé en programmation. Une boucle permet de faire plusieurs fois le même bout de code. Chose très intéressante car avec la puissance des ordinateur de nos jours on exécute ça à une vitesse incroyable

I. Notion

Une boucle sert à répéter plusieurs fois la même chose. Cela sert à beaucoup de chose :
-Compteur
-Alléger le code
-Répéter un code indéfiniment en attendant un message
...

Voici un schéma qui explique la notion simplement :

http://www.siteduzero.com/uploads/fr/files/7001_8000/7855.gif


1. L'ordinateur lit les instructions de haut en bas (comme d'habitude)
2. Puis, une fois arrivé à la fin de la boucle, il repart à la première instruction
3. Il recommence alors à lire les instructions de haut en bas...
4. ... Et il repart au début de la boucle.


(Source : site du zéro)

Pour sortir de la boucle on met une condition (SI...ALORS...), on peut aussi faire une boucle infini mais attention il ne faut pas oublier de le faire quitter de la boucle quelque part (Avec la fonction Exitloop)

II. Les différentes boucles

On va voir 4 boucles en AutoIt, on utilise en général que 2 boucles mais il est bon de tout connaîtreA. While...WEndLa boucle While s'execute du moment que la condition est bonne
On traduirais en français par "Tant que"
On l'utilise en général pour faire un nombre de boucles indéterminés ou une boucle infini (On les évite tant qu'on peut car si il n'y a pas de sortie il faut forcer la fermeture)B. For To (Step)...NextLa boucle For To sert à faire un certain nombre de fois une boucle. L'avantage par rapport a While c'est que cela est fait automatiquement et que on peut choisir l'incrémentation (Step)
On va choisir For pour faire un compteur ou pour remplir un tableau ou encore pour les algorithmesC. Do...WhileDo While a le même principe de While sauf que le programme rentre obligatoirement au moins une fois dans la boucle, la vérification de la condition se fait à la fin de la boucle (au contraire de While)D. For In...NextFor In correspond à la boucle Foreach intégré en .NET (mais pas en C++ Standard)
Elle permet d'énumérer le contenu d'un tableau facilement

III. La boucle While

While signifie "Tant que...", la boucle continu du moment que la condition est vrai

Code:

Code:

While ($i < 10);CODE ICIWend

"Tant que $i plus petit que 10 alors ..."

On délimite la boucle par While (...) et WEnd

Code:

Code:

While ($i < 10)$i += 1MsgBox(0,"Valeur de $i","$i vaut " & $i)WendMsgBox(0,"Sortie",Je suis sortie de la boucle $i vaut " & $i)

Attention à la boucle infini :

Code:

Code:

While (true)MsgBox(0,"Boucle infini !!")Wend

Ce code ne finira jamais il faut forcer la fermeture

Note : Pour comprendre pourquoi "true" fait une boucle infini; la boucle test une condition, soit la condition est vrai (true) donc la boucle continu soit elle est fausse (false) et elle s'arrête. Quand on écrit (1 < 2) c'est comme si on a écrit true, l'ordinateur a executer la condition et a donné le résultat, si on écrit (2 < 1) il renvoi false

IV. La boucle do...while

Do while est similaire a la boucle while sauf que la condition est à la fin de la boucle, ce qui fait que le programme rentre au moins une fois dans la boucle.

Code:

Code:

DoMsgBox(0,"Boucle","Je suis dans la boucle")While(false)

Le programme rentrera une fois dans la boucle mais en sortira à la fin car la condition est fausse (false)

V. La boucle For

La boucle For est très utilisé pour faire une compteur
L'avantage de la boucle For c'est qu'il y a moins de code, c'est plus clair et aussi plus pratique. (Encore plus pour des algorithmes)

Code:

Code:

For $i = 0 To 10MsgBox(0,"Message","$i vaut " & $i)Next

On a pas besoin de déclarer $i ça se fait automatiquement
Ici la message box est afficher 10 fois.
Next délimite la boucle

On peut aussi mettre Step pour donner l'incrémentation a chaque fois

Code:

Code:

For $i = 0 To 10 Step +2MsgBox(0,"Message","$i vaut " & $i)Next

Note : Le step fait une addition mais il est tout à fait possible en mettant Step -1 de réduire le compteur, et oui +(-1) fait -1 tongue
Cela marche aussi avec des nombres à virgule.

VI. La boucle ForIn

ForIn est très peu utilisé, on l'utilise pour manier des tableaux simplement.
On créer une nouvelle variable qui contient une valeur du tableau, sans incrémenter quoique ce soit

Code:

Code:

Local $tableau[4]$tableau[0] = 1$tableau[1] = 2$tableau[2] = 5$tableau[3] = 9For $value in $tableauMsgBox(0,"Valeur de $value","$value vaut " & $value)Next

C'est utile pour éviter (surtout en AutoIt) du code inutile

V. ContinueLoop et ExitLoop

ExitLoop permet de quitter une boucle en cours, cela marche aussi pour les boucles infinies [img]images/smilies/wink.gif[/img]

Code:

Code:

For $i = 0 To 10MsgBox(Default, Default, "$i vaut " & $i)if ($i = 6) Then ExitLoopNextMsgBox(Default, Default, "Sortie de la boucle")

ContinueLoop arrête le code contenu dans la boucle et reprend le début de la boucle.

Code:

Code:

For $i = 0 To 10MsgBox(Default, Default, "$i vaut " & $i)ContinueLoopMsgBox(Default, Default, "Derrière le ContinueLoop")NextMsgBox(Default, Default, "Sortie de la boucle")

Voilà j'ai essayer d'être le plus clair possible si vous avez des problèmes posez-les ici


Ce tuto n'est pas de moi mais je l'ai trouvé très claire alors je n'en est pas re-fait un sur le même sujet ^^
Tuto écrit par Mr-N4th4n-x3

Dernière modification par ptifou78 (28-05-2010 18:15:40)


L'échec n'est qu'une étape vers la victoire smile

http://img404.imageshack.us/img404/2788/bouteilledelait.jpg
forum de sécurité informatique

Hors ligne

 

#2 28-05-2010 23:37:03

cabusar
Administrateur
Date d'inscription: 18-01-2008
Messages: 430

Re: [AUTOIT] Les boucles [5e tuto]

Merci du partage. smile


smile big_smile lol tongue wink

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr