Break et Continue - Modification du déroulement de la boucle
Il existe deux instructions qui permettent de modifier l'exécution des boucles, il s'agit de break et de continue.
L'instruction break permet de sortir de la boucle courante elle est utilisée principalement dans deux situations. La première situation se présente si l'on ne veut pas mettre la condition de boucle dans le corps de la boucle, soit parce que cette condition est trop complexe, soit pour des raisons annexes. La condition de boucle est donc une condition qui est toujours vérifiée et, dans la boucle, on utilise break pour quitter celle-ci une fois que l'on est arrivé à nos fins, voici un exemple:
.01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 .13 .14 .15 .16 .17 .18 .19 .20
| |
<?php
$i = 1; // initialisation
while( true ) // condition de boucle toujours vraie
{
echo $i . '<br />'; // affichage de $i
$i++; // incrémentation
if( $i == 5 ) // test de sortie de boucle
break; // sortie de boucle
}
?>
Affiche:
1
2
3
4
|
Je vous recommande de faire attention à votre condition de sortie de boucle ; en effet, un test incorrect (avec une condition qui ne se réalise jamais) laissera la boucle se répéter sans cesse...
L'autre utilisation de break est pour permettre de gérer des événements plus exceptionnels, comme des erreurs: en cas d'erreur, on quitte la boucle et on affiche un message.
Je vous ai montré un exemple avec la boucle while, mais break tout comme continue que nous allons voir de suite fonctionne aussi avec for, do-while et foreach.
La seconde instruction est l'instruction continue. Cette instruction permet de sauter les instructions qui restent jusqu'à la fin de la boucle et de reprendre à la condition de boucle, par exemple :
.01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 .13 .14
| |
<?php
for( $i = 0; $i < 3; $i++ )
{
echo 'A';
continue;
echo 'B'; // cette instruction ne sera jamais exécutée!
}
?>
Affiche:
AAA
|
Je n'ai pas d'exemples précis à vous donner pour continuer mes explications... Selon les cas, vous aurez peut-être besoin de ne pas exécuter certaines instructions de fin de boucle, ou tout simplement l'inverse.