Cours 6.3. La boucle for

La boucle for permet de répéter une séquence d'instructions comme les boucles while et do..while. La boucle for est particulièrement adaptée pour les boucles qui doivent s'exécuter un nombre de fois donné. Typiquement, pour compter ou pour parcourir des données indexées (comme des tableaux par exemple) :

for ( i=0 ; i<100 ; i++) {
    //...
}

Syntaxe

La boucle for attend 3 paramètres :

for ( initialisation ; test ; itérateur ) {
    // ...
    Bloc d'instructions
    // ...
}

Comme pour les boucles while et do..while la boucle for répète la séquence d'instructions tant que la condition est vraie.

Voici l'organigramme correspondant à la boucle for :

Organigramme de la boucle for en C

Notez l'agencement des blocs dans l'organigramme, la configuration est similaire à la boucle while, le corps de la boucle peut ne pas être exécuté si le test est faux dès le départ.

Il n'y a pas de point-virgule à la fin du for, sauf si le bloc d'instructionsinstruction est vide.

Chacun des paramètres est optionnel, on peut écrire for(;;);, ce qui est équivalent à while(1);

Exemple 1

Voici un exemple de boucle for qui affiche tous les entiers entre 0 et 42 :

int i;
// Affiche les entiers de 0 à 42
for ( i=0 ; i<=42 ; i++) {
    printf ("%d ", i);    
}

Exemple 2

Voici un exemple de boucle for qui affiche les entiers entre -27 et 15 avec un pas de 3 :

int i;
// Affiche les entiers de -27 à 15 avec un pas de 3
for ( i=-27 ; i<=15 ; i+=3) {
  printf ("%d ", i);    
}

Exercice 1

Écrire un programme qui affiche tous les entiers entre 0 et 49 inclus :

int i;
// Affiche les entiers de 0 à 49
// COMPLETEZ ICI

Exercice 2

Écrire un programme qui affiche tous les entiers dans l'ordre décroissant de 49 à 0 inclus :

unsigned int i;
// Affiche les entiers de 49 à 0 dans l'ordre décroissant
// COMPLETEZ ICI

Exercice 3

Écrire un programme qui affiche tous les entiers de 0 à 256 avec un pas de 16 :

int i;
// Affiche les entiers de 0 à 256 avec un pas de 16
// COMPLETEZ ICI

Exercice 4

Écrire un programme qui affiche toutes les puissances de 2 de 0 à 1024 :

int i;
// Affiche toutes les puissances de 2 de 1 à 1024
// COMPLETEZ ICI

Voici l'affichage attendu :

1 2 4 8 16 32 64 128 256 512 1024

Quiz

Qu'affiche le code suivant ?

for ( i=0 ; i<5 ; i++) 
    printf ("%d ",i);
Vérifier Bravo ! La condition est strictement inférieur ou égal. Quand i vaut 5, on sort de la boucle avant l'affichage. Essaie encore ...

Qu'affiche le code suivant ?

for ( i=0 ; i<=5 ; i++) 
    printf ("%d ",i);
Vérifier Bravo ! Quand i vaut 5, on fait une dernière itération, car le le test est inférieur ou égal. Essaie encore ...

Qu'affiche le code suivant ?

for ( i=5 ; i>=0 ; i--) 
    printf ("%d ",i);
Vérifier Bravo ! Le test est inférieur ou égal, on affiche le zéro. Essaie encore ...

Qu'affiche le code suivant ?

for ( i=5 ; i>0 ; i--); 
    printf ("%d ",i);
Vérifier Bravo ! Il y a un point-virgule à la fin du for, le programme affiche 0. Essaie encore ...

Qu'affiche le code suivant ?

int i,j;
for ( i=0 ; i<4 ; i++)
    for ( j=0 ; j<3 ; j++)
        printf ("%d ", j);
Vérifier Bravo ! La première boucle exécute 4 fois la deuxième qui affiche 0 1 2. Essaie encore ...

Qu'affiche le code suivant ?

int i,j;
for ( i=0 ; i<4 ; i++) {
    for ( j=0 ; j<i ; j++)
        printf ("%d ", j);
    printf ("- ");
}
Vérifier Bravo ! La première boucle affiche 4 fois la deuxième qui affiche des entiers de 0 à i-1. La première fois, quand i vaut 0, on ne rentre pas dans la deuxième boucle. Essaie encore ...

Voir aussi


Dernière mise à jour : 26/09/2021