les boucles

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Leplayze

Frite...euse (jeu de mot)
V
Ancien staff
Dec 4, 2009
12,649
5
1,303
30
www.youtube.com
merci d'avance a bouh2 pour ce magnifique tutoriel


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 :

7855.gif



(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ître

A. While...WEnd

La 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)...Next

La 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 algorithmes

C. Do...While

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

For 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:
While ($i < 10)
;CODE ICI
Wend

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

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

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

Attention à la boucle infini :

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:
Do
MsgBox(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:
For $i = 0 To 10
MsgBox(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:
For $i = 0 To 10 Step +2
MsgBox(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 :P
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:
Local $tableau[4]
$tableau[0] = 1
$tableau[1] = 2
$tableau[2] = 5
$tableau[3] = 9

For $value in $tableau
	MsgBox(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 ;)

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

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

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