Les Boucles

      Une boucle est la répétition d'un bloc d'instruction. Dans certains cas, la boucle se répère un nombre de fois fixé à l'avance. Par exemple, une boucle qui afficherait la liste des départements français métropolitains se répèterait 95 fois. Dans d'autre cas, une boucle se répète jusqu'à ce qu'une certaine condition soit remplie. Par exemple, une boucle qui afficherait la liste de produit commercialisés se répéterait jusqu'à ce que la liste soit épuisée, quel que soit le nombre de ces produits. Il existe trois type de boucles.



FOR

      La boucle for la plus élémentaire est basé sur un compteur. Vous définissez la valeur de départ du compteur, sa valeur finale et la façon dont il va être incrémenté à chaque tour. Sa forme générale est la suivante : For (début;fin;incrémentation) { Bloc d'instruction }
  • Début : Expression définissant la variable qu'utilisera le compteur et sa valeur initiale.
  • fin : Test d'arrêt de la boucle. Tant que sa valeur est égale à VRAI, la boucle continue à tourner
  • Incrémentation : Valeur dont sera incrémentée ( ou décrémentée) la variable servant de compteur


      Voici comment écrire écrire une bouclefor qui affichera trois fois de suite Allo : for ($i=0;$i<3;$i++) { echo "allo<br>"; }       Les boucles for sont particulièrement utiles pour balayer tout un tableau. Pour afficher toute la liste de vos clients contenue dans le tableau clients, vous pouvez écrire : for ($i=0;$i<sizeof($clients);$i++) { echo "$clients[$i]<br>"; }       La fonction sizeof() qui apparaît dans le test d'arrêt renvoie le nombre d.élément contenus dans un tableau, donc, ici, le nombre de clients à afficher. Comme le premier indice d'un tableau vaut normalement 0, la dernière valeur du compteur à utiliser est le nombre d'élément du tableau diminué de 1.

[ TOP ]

WHILE

      La boucle while répète un bloc d'instructions tant que certaines conditions sont vérifiées. Elle est organisée comme suit :
  1. Vous définissez une condition.
  2. La condition est terté avant d'entrer dans la boucle
  3. Si la condition est vérifiée, on exécute une fois la boucle
  4. On répète les étapes 2 et 3


while (condition) { bloc d'instruction }       Condition est une expression conforme à toutes celles vue plus haut. Elle fait intervenir une variable qui doit évoluer dans le bloc d'instruction. Faute de quoi on ne pourrait jamais sortir de la boucle.

Truc : Si la condition de la boucle while n'est pas remplie au départ, on ne passe jamais dansle bloc d'instruction qui suit.

$clients = array("Eric", "Martin", "Denis"); $testVar = "non"; $k=0; while ($testVar !="oui" && $k<sizeof($clients)) { if($clients[$k] == "Martin") { $testVar = "oui"; echo "Martin est dans le tableau"; } $k++; } if ($testVar =="non") echo "Martin n'est pas dans le tableau";       Détail :
  1. Initialisation : Les variables $k et $testVar prennent respectivement les valeurs 0 et "non"
  2. On exécute le while si $testVar ne vaut pas "oui" et $k est égal à 0. La condition formée par l'association de ces deux tests est vérifiée et on entre dans la boucle.
  3. Est-ce que $client[0] contient "Martin" ?
    • Si non, le bloc d'instruction qui suit est sauté.
    • Si oui, le bloc d'instruction qui suit est exécuté. $testVar prend la valeur "oui" et le message "Martin est dans le tableau est affiché."
  4. Dans les deux cas, on exécute la progression du compteur: $k++. a la fin du premier tour, $k vaut 1
  5. On répère les étapes 2 à 4 tant que les deux conditions du while ne sont pas satisfaites
  6. Lorsqu'on sort de la boucle, il faut voir de quelle façon
    • Si $tesVar vaut "oui", c'est que Martin était dans le tableau et il n'y a plus rien à faire
    • Si $testVar ne vaut toujours pas "oui", c'est (implicitement) qu'on est sorti du tableau ; il faut alors afficher le message "Martin n'est pas dan sle tableau"


Remarque : Que cet exemple aurait aussi bien pu être traité à l'aide d'une boucle for. C'est souvent le cas pour beaucoup de boucle.

[ TOP ]

DO .... WHILE

      Ce type de boucle ressemble beaucoup à la boucle while, à ce détail près que le test de répétition est fait à la fin de la boucle et non à son début. On est alors certain d'exécuter au moins une fois le bloc d'instruction qui suit. La forme générale est la suivante do { Bloc d'instruction }while (condition)       Nous allons réécrire l'exemple précédent avec un boucle do .. while $clients = array("Eric", "Martin", "Denis"); $testVar = "non"; $k=0; do { if($clients[$k] == "Martin") { $testVar = "oui"; echo "Martin est dans le tableau"; } $k++; } while ($testVar !="oui" && $k<sizeof($clients)); if ($testVar =="non") echo "Martin n'est pas dans le tableau";       Contrairement à ce qui se passe avec la boucle while, dans une boucle do...while, la ligne où se trouve le while doit être terminé par un point-virgule.



Rupture d'une boucle

      Dans certains cas, on peut avoir besoin de modifier le cour d'une boucle. Il y a pour cela, deux motivations possibles :
  • On veut sortir immédiatement de la boucle pour cause différente de sa condition normale. On utilisera alors l'instruction break
  • On a exécuté une partie des instructions de la boucle. On veut sauter celles qui suivent, puis reprendre l'exécution normale de la boucle. On utilisera alors l'instruction continue
$compteur =0; while ($compteur < 5) { $compteur++; if ($compteur == 3) { echo "break<bR>"; break; } echo "Fin de la boucle while : compteur = $compteur<bR>"; } echo "Sortie par le break <br>"; $compteur =0; while ($compteur < 5) { $compteur++; if ($compteur == 3) { echo "continue<bR>"; continue; } echo "Fin de la boucle while : compteur = $compteur<bR>"; } echo "Après le continue <br>";

[ TOP ]





Copyright © 2003-2008 Dave J.