|
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 ";
}
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";
}
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 :
- Vous définissez une condition.
- La condition est terté avant d'entrer dans la boucle
- Si la condition est vérifiée, on exécute une fois la boucle
- 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
Détail :
- Initialisation : Les variables $k et $testVar prennent respectivement les valeurs 0 et "non"
- 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.
- 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é."
- Dans les deux cas, on exécute la progression du compteur: $k++. a la fin du premier tour, $k vaut 1
- On répère les étapes 2 à 4 tant que les deux conditions du while ne sont pas satisfaites
- 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
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 ";
break;
}
echo "Fin de la boucle while : compteur = $compteur ";
}
echo "Sortie par le break ";
$compteur =0;
while ($compteur < 5)
{ $compteur++;
if ($compteur == 3)
{
echo "continue ";
continue;
}
echo "Fin de la boucle while : compteur = $compteur ";
}
echo "Après le continue ";
[ TOP ]
|