Informatique


Les boucles

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