Vous êtes ici :
Accueil Cours Programmations Débuter en programmation avec le langage C Les boucles

Débuter en programmation avec le langage C : Les boucles

Les boucles permettent de répéter une série d'instructions tant qu'une certaine condition est vérifiée.  
 

Boucle « while »

 
La syntaxe de while est la suivante :
 
while (expression )
{

  instruction
}


Tant que expression est vérifiée (c'est-à-dire., non nulle), instruction est exécutée. Si expression est nulle au départ, instruction ne sera jamais exécutée. instruction peut évidemment être une instruction composée. Par exemple, le programme suivant imprime les entiers de 1 à 9.  
 

i = 1;
while (i < 10)
  {
    printf("n i = %d",i);
    i++;
  }

 

 

Boucle « do--while »

 
Il peut arriver que l'on ne veuille effectuer le test de continuation qu'après avoir exécuté l'instruction. Dans ce cas, on utilise la boucle do--while. Sa syntaxe est
 
do
{

  instruction
}

while (expression );
 
Ici, instruction sera exécutée tant que expression est non nulle. Cela signifie donc que instruction est toujours exécutée au moins une fois. Par exemple, pour saisir au clavier un entier entre 1 et 10 :  
 

int a; 
 
do 
  { 
    printf("n Entrez un entier entre 1 et 10 : "); 
    scanf("%d",&a); 
  } 
while ((a <= 0) || (a > 10)); 
 

 

 

Boucle « for »

la boucle for permet de répeter une action tant que le nombre d'itération est connue. La syntaxe de for est :
 
for (expr 1 ;expr 2 ;expr 3)
{

  instruction
}


Une version équivalente plus intuitive est :


expr 1;
 while (expr 2 )
   {

instruction
  expr 3;
   }

 
Par exemple, pour imprimer tous les entiers de 0 à 9, on écrit :  
 
for (i = 0; i < 10; i++)
  printf("n i = %d",i);
 
A la fin de cette boucle, i vaudra 10. Les trois expressions utilisées dans une boucle for peuvent être constituées de plusieurs expressions séparées par des virgules. Cela permet par exemple de faire plusieurs initialisations à la fois. Par exemple, pour calculer la factorielle d'un entier, on peut écrire :  
 

int n, i, fact; 
for (i = 1, fact = 1; i <= n; i++) 
  fact *= i; 
printf("%d ! = %d n",n,fact); 
 

 

On peut également insérer l'instruction fact*= i; dans la boucle for ce qui donne :  

 

int n, i, fact; 
for (i = 1, fact = 1; i <= n; fact *= i, i++); 
printf("%d ! = %d n",n,fact); 
 

 

On évitera toutefois ce type d'acrobaties qui n'apportent rien et rendent le programme difficilement lisible.
 

 

Branchement non conditionnel « break »

 
On a vu le rôle de l'instruction break; au sein d'une instruction de branchement multiple switch. L'instruction break peut, plus généralement, être employée à l'intérieur de n'importe quelle boucle. Elle permet d'interrompre le déroulement de la boucle, et passe à la première instruction qui suit la boucle. En cas de boucles imbriquées,
break fait sortir de la boucle la plus interne. Par exemple, le programme suivant :  
  

int main() 
{ 
  int i; 
  for (i = 0; i < 5; i++) 
    { 
      printf("i = %dn",i); 
      if (i == 3) 
        break; 
    } 
  printf("valeur de i a la sortie de la boucle = %dn",i); 
} 
 

 

affiche à l'écran  
 
i = 0
i = 1
i = 2
i = 3
valeur de i à la sortie de la boucle = 3
 

 Branchement non conditionnel « continue »

L'instruction continue permet de passer directement au tour de boucle suivant, sans exécuter les autres instructions de la boucle. Ainsi le programme  
 

int main() 
{ 
  int i; 
  for (i = 0; i < 5; i++) 
    { 
      if (i == 3) 
        continue; 
      printf("i = %dn",i); 
    } 
  printf("valeur de i a la sortie de la boucle = %dn",i); 
} 
 

 

affiche à l'écran

imprime  
 
i = 0
i = 1
i = 2
i = 4
valeur de i à la sortie de la boucle = 5
 




Vous êtes ici :
Accueil Cours Programmations Débuter en programmation avec le langage C Les boucles