Les instructions break et continue facilitent respectivement la sortie immédiate et l'arrêt pour l'itération en cours d'une boucle suite à une condition particulière nécessitant une action précise.
while(condition)
{
Bloc d'instructions...
break;
// sortie de la boucle avant la prochaîne itération
Bloc d'instructions...
}
while(condition)
{
Bloc d'instructions...
continue;
/* arrêt de la boucle à l'itération en cours
mais passage à l'itération suivante */
Bloc d'instructions...
}
Dans le cas d'une imbrication de plusieurs boucles, les instructions break et continue peuvent utiliser un argument indiquant le niveau de la ou des boucles à quitter.
for(initialisation; condition; incrémentation)
while(condition)
foreach($tableau as $valeur)
{
Bloc d'instructions...
break n;
Bloc d'instructions...
continue m;
}
endwhile;
endfor;
Si la valeur n est égale 1, alors la sortie de la boucle foreach se produit.
Si la valeur n est égale 2, alors la sortie des boucles foreach et while se produit.
Si la valeur n est égale 3, alors la sortie des trois boucles se produit.
Le fonctionnement est identique pour l'instruction continue m.
Exemple [voir]<?php
$tableau = array("5" => "Janvier", "6" => "Février",
"7" => "Mars", "8" => "Avril", "9" => "Mai",
"10" => "Juin", "11" => "Juillet", "12" => "Août",
"1" => "Septembre", "2" => "Octobre",
"3" => "Novembre", "4" => "Décembre");
// Exemple break
while(list($cle, $valeur) = each($tableau)){
if($valeur == 'Juillet'){
echo "Fin de l'année scolaire !<br>";
break;
}
echo $valeur."<br>";
}
// Exemple continue
while(list($cle, $valeur) = each($tableau)){
if($valeur == 'Juillet' || $valeur == 'Août') {
continue;
}
echo "Mois d'une année scolaire : ".$valeur."<br>";
}
// Exemple break avec paramètre
$nouveau = true;
for(;;){
while(list($cle, $valeur) = each($tableau)){
if($nouveau && $cle >= 5) continue;
$nouveau = false;
echo "Mois N°".$cle." : ".$valeur."<br>";
if($cle == 12) break 2;
}
reset($tableau);
}
?> |