PHP - Boucle do...While : Un guide pour débutants

Bienvenue, futurs codeurs ! Aujourd'hui, nous plongeons dans le monde passionnant des boucles PHP, spécifiquement la boucle do...while. En tant que votre professeur d'informatique de quartier, je suis là pour vous guider à travers ce concept avec plein d'exemples et d'explications. Alors, prenez vos carnets virtuels, et mettons-nous à boucler !

PHP - Do…While Loop

Qu'est-ce qu'une boucle do...While ?

Avant de nous lancer dans des exemples, comprenstons ce qu'est une boucle do...while. Imaginez que vous jouez à un jeu où vous devez lancer un dé jusqu'à obtenir un six. Vous lancerez le dé au moins une fois, non ? C'est exactement comme fonctionne une boucle do...while !

Une boucle do...while exécute un bloc de code au moins une fois avant de vérifier si une condition est vraie. Si la condition est vraie, elle continue d'exécuter le bloc répétivement jusqu'à ce que la condition devienne fausse.

Maintenant, regardons la syntaxe :

do {
// Code à exécuter
} while (condition);

Exemple 1 : Boucle do...While de base

Commençons par un exemple simple :

<?php
$i = 1;
do {
echo "Le nombre est : $i <br>";
$i++;
} while ($i <= 5);
?>

Que se passe-t-il ici ?

  1. Nous initialisons une variable $i avec la valeur 1.
  2. La boucle commence avec do, et nous affichons la valeur actuelle de $i.
  3. Nous incrémentons $i de 1 en utilisant $i++.
  4. Après l'accolade fermante, nous avons la condition while. Elle vérifie si $i est inférieur ou égal à 5.
  5. Si la condition est vraie, la boucle continue ; si faux, elle s'arrête.

Sortie :

Le nombre est : 1
Le nombre est : 2
Le nombre est : 3
Le nombre est : 4
Le nombre est : 5

Exemple 2 : Boucle do...While avec entrée utilisateur

Faisons les choses plus interactives ! Nous allons créer un simple jeu de devinette :

<?php
$secretNumber = 7;
do {
$guess = (int)readline("Devinez le nombre (entre 1 et 10) : ");
if ($guess < $secretNumber) {
echo "Trop bas ! Essayez encore.\n";
} elseif ($guess > $secretNumber) {
echo "Trop haut ! Essayez encore.\n";
}
} while ($guess != $secretNumber);

echo "Félicitations ! Vous avez deviné correctement !";
?>

Dans cet exemple :

  1. Nous définissons un nombre secret (7 dans ce cas).
  2. La boucle demande à l'utilisateur de deviner le nombre.
  3. Elle fournit un retour si la devinette est trop basse ou trop haute.
  4. La boucle continue jusqu'à ce que le nombre correct soit deviné.

Cela montre comment les boucles do...while peuvent être utilisées pour la validation des entrées et la création de jeux simples !

Exemple 3 : Lecture de fichier avec une boucle do...While

Explorons un exemple plus pratique - lire des lignes d'un fichier :

<?php
$file = fopen("sample.txt", "r");

do {
$line = fgets($file);
if ($line !== false) {
echo $line . "<br>";
}
} while ($line !== false);

fclose($file);
?>

Voici ce qui se passe :

  1. Nous ouvrons un fichier nommé "sample.txt" en mode lecture.
  2. La boucle lit une ligne du fichier en utilisant fgets().
  3. Si la ligne n'est pas fausse (c'est-à-dire pas la fin du fichier), nous l'affichons.
  4. La boucle continue jusqu'à ce que nous atteignions la fin du fichier.
  5. Enfin, nous fermons le fichier.

Cet exemple montre comment les boucles do...while peuvent être utiles pour les opérations sur les fichiers !

Décrémenter une boucle "do...while"

Maintenant, comptons à rebours en utilisant une boucle do...while :

<?php
$countdown = 5;

do {
echo "T-minus $countdown...<br>";
$countdown--;
} while ($countdown > 0);

echo "Décollage ! ?";
?>

Dans ce compte à rebours spatial :

  1. Nous démarons avec $countdown à 5.
  2. La boucle affiche le nombre de compte à rebours actuel.
  3. Nous décrémentons $countdown en utilisant $countdown--.
  4. La boucle continue tant que $countdown est supérieur à 0.
  5. Une fois que nous atteignons zéro, nous décollons !

Sortie :

T-minus 5...
T-minus 4...
T-minus 3...
T-minus 2...
T-minus 1...
Décollage ! ?

Inverser une chaîne en utilisant une boucle do...While

Faisons preuve de créativité et inversons une chaîne en utilisant une boucle do...while :

<?php
$str = "Hello, World!";
$length = strlen($str) - 1;

do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>

Que se passe-t-il ici ?

  1. Nous démarons avec une chaîne "Hello, World!".
  2. Nous obtenons l'index dernier de la chaîne (longueur - 1).
  3. La boucle affiche chaque caractère en partant de la fin.
  4. Nous décrémentons l'index à chaque itération.
  5. La boucle continue jusqu'à ce que nous ayons affiché le premier caractère.

Sortie :

!dlroW ,olleH

Boucles "do...while" imbriquées

Enfin, explorons les boucles do...while imbriquées avec un motif amusant :

<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>

Décomposons cela :

  1. La boucle externe contrôle le nombre de lignes (5 dans ce cas).
  2. La boucle interne imprime des étoiles dans chaque ligne.
  3. Le nombre d'étoiles dans chaque ligne correspond au numéro de la ligne.
  4. Nous utilisons <br> pour passer à la ligne après chaque rangée.

Sortie :

*
* *
* * *
* * * *
* * * * *

Tableau des méthodes

Voici un tableau résumant les méthodes que nous avons utilisées dans nos exemples :

Méthode Description
echo Affiche une ou plusieurs chaînes
readline Lit une ligne de l'entrée utilisateur
fopen Ouvre un fichier ou une URL
fgets Obtient une ligne du pointeur de fichier
fclose Ferme un pointeur de fichier ouvert
strlen Retourne la longueur d'une chaîne

Et voilà, amis ! Nous avons bouclé à travers les avantages et les inconvénients de la boucle do...while de PHP. Souvenez-vous, la pratique rend parfait, donc continuez de coder et d'expérimenter avec ces boucles. Avant de savoir, vous serez en train de faire des boucles autour de vos défis de codage ! Bon codage ! ??

Credits: Image by storyset