Compléments sur la boucle "for"
Nous vous rappelons qu'une boucle for s'écrit comme un triplet for (partie1; partie2 ; partie3) ces trois parties sont optionnelles, ainsi la boucle :
for(;;) {
printf( "\ntaper Q pour quitter la boucle : " );
scanf("%c", &c);
if (c == 'Q')
break;
}
est parfaitement compilée. Elle correspond à une boucle infinie dont on ne peut sortir qu'en tapant la lettre 'Q'.
En outre, chaque partie peut comporter plusieurs éléments syntaxiques séparés par le délimiteur ',',
int i,j,compte=0 ;
for (j=5,i=0; i<10, j>0;i++,--j)
{
printf("\ncompte = %d i = %d j = %d",compte, i,j);
compte ++;
}
printf("\nsortie : ");
printf("\n\tcompte = %d i = %d j = %d",compte, i,j);
printf("\n");
}
affichera :
compte = 0 i = 0 j = 5
compte = 1 i = 1 j = 4
compte = 2 i = 2 j = 3
compte = 3 i = 3 j = 2
compte = 4 i = 4 j = 1
sortie :
compte = 5 i = 5 j = 0
La boucle ne s'effectue que 5 fois. En effet, la valeur j=0 sera atteinte avant la valeur i=10.
On peut donc initialiser plusieurs variables dans "partie1", élaborer plusieurs tests séparés dans "partie2" et faire évoluer plusieurs variables de contrôle de boucle dans "partie3".
Les instructions "continue", "break" et les variantes de "for" sont à déconseiller.
Nous avons tenu à vous les présenter pour que vous les connaissiez si vous les rencontrez.
Cependant, la grande majorité des applications ne nécessitent pas leur usage, on peut toujours trouver une autre solution.
Il n'y a pas d'algorithme unique pour traiter un problème. Si vous voulez les utiliser apprenez bien leur fonctionnement en complétant cette présentation par la lecture d'ouvrages plus détaillés.
Ce cours introductif donne les bases et ouvre des perspectives, libre à vous de les explorer pour aller plus loin.