Les boucles
Introduction
Tout comme les conditions, les boucles constituent un élément de base de tout langage de programmation. Elles permettent tout simplement de répéter une série d’instructions identiques.
Par exemple, si vous devez affichez toutes les personnes inscrites sur un forum (une centaine par exemple), vous n’allez pas utiliser l’instruction echo cent fois, c’est d’une part extrêmement fastidieux, et d’autre part, cela obligerait à modifier le code s’il y a de nouveaux inscrits.
Les pages suivantes vont aborder plusieurs façons de gérer la répétition d’instructions : for, while, do...while et foreach.
La boucle for
Comme vous l’avez lu en introduction, une boucle sert à répéter une ou plusieurs instructions, voici la syntaxe de la boucle for :
<?php
for ($i=1; $i <= 10; $i++) {
echo "Bonjour tout le monde ! <br>";
}
?>
La boucle for se décompose ainsi :
For (valeur initiale; conditions de répétition; incrément) {
Instructions
}
Dans l’exemple plus haut, $i va servir de condition d’itération. Cette variable est initialisée avec la valeur 1 ($i=1), puis elle va être comparée à la valeur 10 ($i<=10), enfin on paramètre le pas de l’itération en indiquant à $i de s’incrémenter de 1 ($i++).
Le nom de la valeur initiale ($i) est totalement arbitraire, elle est très souvent utilisée ainsi, mais sachez que vous pouvez utiliser n’importe quel nom de variable :
For ($valeur=0; $valeur<5; $valeur++) {
En ce qui concerne l’incrément, $i++ est strictement équivalent à $i = $i + 1;
Si vous devez incrémenter de 2 en 2, vous écrirez $i = $i +2, mais on peut aussi avoir un pas négatif : $i--, la valeur de $i sera décrémentée de 1.
Enfin, tant que la condition est respectée ($i<=10), les instructions à l’intérieur...
La boucle while
La boucle while se traduit par tant que, ce qui signifie que cette boucle va s’exécuter tant qu’une condition est respectée.
Par exemple, pour afficher dix fois "Bonjour tout le monde !", il faudra écrire :
<?php
$i = 1;
while ($i <= 10) {
echo "Bonjour tout le monde ! <br>";
$i++;
}
echo "instruction après la boucle";
?>
Tout comme la boucle for, il y a un compteur d’itérations $i, qui est comparé à la valeur 10, tant que $i est inférieur à 10, l’instruction echo sera exécutée.
Puis, l’instruction $i++ incrémente sa valeur de 1, vous voyez que cette variable a été initialisée à 1 au début du code ($i = 1), puis elle prendra la valeur 2 au premier passage dans la boucle, puis 3, etc., jusqu’à ce que $i contienne 10, et dans ce cas, on sortira de la boucle (les instructions suivantes seront exécutées).
Il est très important de ne pas oublier l’incrément ($i++;), sous peine d’avoir une boucle infinie, et un code qui ne s’arrête jamais.
Si la condition d’incrément n’est pas respectée dès le départ, les instructions de la boucle ne seront jamais exécutées :...
La boucle do…while
Cette instruction est très similaire à l’instruction while, et peut se traduire par fait tant que la condition est respectée.
La principale différence réside dans le fait que cette boucle sera exécutée au moins une fois, car la condition de sortie se situe à la fin de la boucle :
<?php
$i = 1;
do {
echo "Bonjour tout le monde ! <br>";
$i++;
} while ($i <= 10)
echo "instruction après la boucle";
?>
Notez bien le placement des accolades sur l’exemple ci-dessus, il est sensiblement différent de celui de la boucle while.