Les Boucles en C


Une boucle permet d'executer un certain nombre de fois un bloc d'instructions. C'est un des éléments de programmation de base, indispensables pour un programme correct. Il existe en C trois types de boucles : for, while, do.


La boucle FOR

La boucle FOR comprend une initialisation en entrée, une condition de sortie, et une action de rebouclage. Elle se présente sous la forme suivante :

for( <initialisation>;<condition de sortie>;<action>)
{ /* instructions quelconques dans la boucle */ }

Par exemple, si l'on veut une boucle avec un indice i partant de 0 et allant jusqu'à 10, la syntaxe de la boucle for est la suivante :

for(i=0;i<10;i++)
{ /* instructions */ }

Les instructions contenues dans le bloc sont executées 10 fois, la valeur de la variable i étant modifiée à chaque passage dans la boucle. Il peut y avoir plusieurs initialisations, une condition complexe et des actions diverses, comme dans l'exemple suivant :

for(i=0,j=5;(i<10)&&(j>=1);i++,j--)
{ /* instructions */ }

Dans ce cas, i part de 0, j part de 5. A chaque tour, i est incrémenté et j décrémenté, la boucle sera terminée dès que i atteint 10 OU dès que j arrive en dessous de 1.

On peut utiliser une boucle FOR pour faire une boucle SANS FIN :

for(;;){ /* boucle sans fin */ }


La boucle WHILE

Une boucle WHILE est executée TANT QUE une condition est vraie. Les paramètres de cette condition doivent être modifiées dans la boucle si l'on veut pouvoir en sortir. La syntaxe de la boucle WHILE est la suivante :

while(<condition) { /* instructions */ }

La condition est un booléen, elle peut être simple ou très complexe. Par exemple :

while( (i!=5)||(a>b) ) { /* instructions */ }

Les instructions contenues dans la boucle sont executée TANT QUE l'entier i n'est pas égal à 5 ou que a est supérieur à b.

On peut également utiliser une boucle WHILE pour faire une boucle sans fin :

while(1){ /* boucle sans fin puisque 1 est toujours VRAI */ }

On remarque que le test est effectué EN DEBUT de la boucle, donc la boucle peut ne jamais être executée si celui-ci est faux dès le départ.


La Boucle DO

La boucle DO est similaire à la boucle WHILE, sauf que la condition est testée à la fin de la boucle. Celle-ci est donc toujours executée au moins une fois. la syntaxe est la suivante :

do { /* instructions */ }while( <condition> );

La boucle est executée TANT QUE la condition est vraie.


Sortie de boucle

Il existe en C une instruction permettant de sortir d'une boucle, même si la condition de sortie est fausse, c'est l'instruction break. Dès qu'elle est rencontrée, la sortie de la boucle est immédiate. Cette instruction peut être utilisée quand on veut faire un test de sortie à l'intérieur même de la boucle, alors que dans une boucle WHILE et une boucle FOR il est au début, et à la fin dans une boucle DO. Par exemple :

while(1) /* boucle sans fin */
{

/* instructions */
if( <condition de sortie> ) break;
/* autres instructions */

}

Dans ce cas, on sort de la boucle dès que la condition est vraie, grâce à l'instruction break. Cette instruction peut également être utilisée