Les boucles

Résumé Support Quiz

Les boucles permettent de répéter un bloc de code tant qu'une condition est remplie, ou de parcourir les éléments d'un tableau. En PHP, il en existe trois : le while, le for, et le foreach. Pour aller plus loin, on pourra consulter la documentation officielle.

La boucle while

Le while (tant que) répète un bloc de code tant qu'une condition reste vraie. C'est la boucle à utiliser quand on ne sait pas à l'avance combien de fois on va itérer.

Exemple : on demande à l'utilisateur de deviner un chiffre et on recommence jusqu'à ce qu'il trouve.

$chiffre = null; while ($chiffre != 10) { $chiffre = readline("Entrez un chiffre : "); } echo "Bravo, vous avez gagné !";

Le while vérifie la condition avant chaque itération. Ici, tant que $chiffre est différent de 10, on redemande une valeur. Dès que l'utilisateur tape 10, on sort de la boucle.

Comme pour le switch, on peut sortir d'une boucle de force avec un break. Une variante courante consiste à écrire un while (true) et à gérer la sortie manuellement :

while (true) { $chiffre = readline("Entrez un chiffre : "); if ($chiffre == 10) { break; } } echo "Bravo, vous avez gagné !";

Cette approche peut être plus naturelle quand la condition de sortie se trouve au milieu de la logique du bloc.

La boucle for

Le for est la boucle à privilégier quand on connaît à l'avance le nombre d'itérations. Sa syntaxe regroupe en une seule ligne trois informations : la valeur initiale du compteur, la condition de continuation, et l'évolution du compteur.

for ($i = 0; $i < 10; $i++) { echo $i . "\n"; }
  • $i = 0 : on initialise le compteur à 0
  • $i < 10 : on continue tant que $i est strictement inférieur à 10
  • $i++ : on incrémente $i de 1 à chaque tour

On peut bien sûr incrémenter par pas différents. $i += 2 permet par exemple d'aller de 2 en 2, et $i -= 1 de décrémenter.

Le for peut aussi servir à parcourir un tableau si on connaît sa taille :

$notes = [10, 15, 16]; for ($i = 0; $i < 3; $i++) { echo "- " . $notes[$i] . "\n"; }

Mais cette approche oblige à connaître la taille du tableau à l'avance et n'est pas très lisible. C'est là qu'intervient le foreach.

La boucle foreach

Le foreach est propre à PHP et est conçu spécifiquement pour parcourir des tableaux. On n'a pas besoin de gérer un compteur ni de connaître la taille du tableau.

$notes = [10, 15, 16]; foreach ($notes as $note) { echo "- $note\n"; }

À chaque itération, $note prend la valeur de l'élément courant du tableau. C'est beaucoup plus lisible que l'équivalent avec for.

Récupérer la clé

Si le tableau a des clés nommées (tableau associatif), on peut les récupérer en même temps que la valeur avec la syntaxe clé => valeur :

$eleves = [ "CM2" => "Jean", "CM1" => "Marc", ]; foreach ($eleves as $classe => $eleve) { echo "$eleve est dans la classe $classe\n"; }

Cette syntaxe fonctionne aussi avec les tableaux indexés numériquement, auquel cas la clé sera simplement l'index (0, 1, 2...).

Boucles imbriquées

On peut tout à fait imbriquer des boucles pour parcourir des structures de données plus complexes. Par exemple, pour afficher la liste des élèves par classe :

$eleves = [ "CM2" => ["Jean", "Marc"], "CM1" => ["Emilie", "Marcelin"], ]; foreach ($eleves as $classe => $liste) { echo "$classe :\n"; foreach ($liste as $eleve) { echo " - $eleve\n"; } echo "\n"; }

La première boucle parcourt les classes, la seconde parcourt les élèves de chaque classe.

Résumé

Boucle Cas d'usage
while Nombre d'itérations inconnu à l'avance
for Nombre d'itérations connu, compteur numérique
foreach Parcours d'un tableau