while
- initialisation du compteur de boucle en dehors de la boucle
- test de l'expression conditionnelle
- si le test renvoie true, exécution du bloc d'instructions contenu dans la boucle et
incrémentation du compteur de boucle à l'intérieur de la boucle
- test de l'expression conditionnelle
- ... et ainsi de suite jusqu'à ce que le test donne false
Réaliser un programme qui exécute 12 fois un bloc de code inclus dans une boucle, afficher le rang de chaque tour de boucle.
Démo
<?php
$counter = 1; //initialisation du compteur de boucle
while( $counter <= 12 ){
echo( "Boucle n°: $counter <br>");
$counter++; //incrémentation du compteur de boucle
}
?>
si le test de la condition renvoie false (0) dès le premier test, le code
inscrit dans la boucle ne sera jamais exécuté!
do while
- initialisation du compteur de boucle en dehors de la boucle
- exécution du bloc d'instructions contenu dans la boucle et incrémentation du compteur de boucle à l'intérieur de la boucle
- test de l'expression conditionnelle
- si le test renvoie true, exécution du bloc d'instructions contenu dans la boucle et
incrémentation du compteur de boucle à l'intérieur de la boucle
- ... et ainsi de suite jusqu'à ce que le test donne false
Réaliser un programme qui exécute 9 fois un bloc de code inclus dans une boucle, afficher le rang de chaque tour de boucle.
Démo
<?php
$num = 1; //initialisation du compteur de boucle
do {
echo("Tour n°: $num<br>");
$num++; //incrémentation du compteur de boucle
} while ( $num < 10 )
?>
le code inscrit dans la boucle sera toujours exécuté au moins une fois puisque
le test de l'expression conditionnelle se fait en fin de boucle.
for
- initialisation du compteur de boucle (1er paramètre)
- test de l'expression conditionnelle (2ème paramètre)
- si le test renvoie true, exécution du bloc d'instructions contenus dans la boucle
- incrémentation du compteur de boucle (3ème paramètre)
- test de l'expression conditionnelle (2ème paramètre)
- si le test renvoie true, exécution du bloc d'instructions contenus dans la boucle
- ... et ainsi de suite jusqu'à ce que le test donne false
Réaliser un programme qui divise la valeur 100 par 10 nombres incrémentés.
Démo
<?php
for( $counter=1; $counter <= 10; $counter++ ) {
$res = 100/$counter;
echo( "100 divisé par $counter donne... $res<br>");
}
?>
foreach
foreach, première syntaxe
La boucle foreach est particulièrement bien adaptée pour parcourir les tableaux (type array).
Fonctionnement de la boucle foreach:
A chaque tour de boucle la valeur de l'élément courant est affecté à une variable de travail. Le pointeur interne du tableau se déplace ensuite sur l'élément suivant,
lorque le pointeur interne ne rencontre plus d'élément la boucle est cassé.
Réaliser un programme qui affiche le contenu d'un tableau avec foreach.
Démo
<?php
$tab= array(4,5,8,125,8);
foreach($tab as $trav) {
echo("$trav");
echo("<br>");
}
?>
foreach, deuxième syntaxe
Cette boucle foreach est particulièrement bien adaptée pour parcourir les tableaux associatifs.
Fonctionnement de la boucle foreach:
A chaque tour de boucle on utilise 2 variables de travail:
- une pour stocker la clé de l'élément courant
- une pour stocker la valeur de l'élément courant
Le pointeur interne du tableau se déplace sur l'élément suivant jusqu'à la fin du tableau.
Réaliser un programme qui affiche le contenu d'un tableau associatif avec foreach.
Démo
<?php
$character = array (
"nom"=>"Bob",
"profession"=>"super héro",
"age"=>"30",
"pouvoir"=>"vision sous forme de rayons X"
);
foreach ($character as $key=>$val ) {
echo("$key = $val<br>");
}
?>
break et continue
break
L'instruction break permet de sortir d'une structure for, foreach, while, do-while ou switch.
Démo
<?php
$arr = array('un', 'deux', 'trois', 'quatre', 'stop', 'cinq');
foreach($arr as $trav) {
if ($trav == 'stop') {
break;
}
echo "$trav <br>";
}
?>
continue
L'instruction continue est utilisée dans une boucle afin d'éluder les instructions de l'itération courante, et donc de recommencer à la prochaine itération.
Démo
<?php
$val=100;
for($i=-10;$i<11;$i++) {
if ($i === 0) {
continue;
}
echo $val/$i."<br>";
}
?>
Dans le cas de boucles imbriquées,seule la boucle qui contient le break ou le continue est concernée