Article original : For Loops in C – Explained with Code Examples

En programmation, vous utiliserez des boucles lorsque vous devrez répéter un bloc de code plusieurs fois.

Ces répétitions du même bloc de code un certain nombre de fois sont appelées itérations. Et il y a une condition de boucle qui détermine le nombre d'itérations.

Les boucles for et while sont largement utilisées dans presque tous les langages de programmation.

Dans ce tutoriel, vous apprendrez à propos des boucles for en C. En particulier, vous apprendrez :

  • la syntaxe pour utiliser les boucles for,
  • comment les boucles for fonctionnent en C, et
  • la possibilité d'une boucle for infinie.

Commençons.

Syntaxe de la boucle for en C et son fonctionnement

Dans cette section, vous apprendrez la syntaxe de base des boucles for en C.

La syntaxe générale pour utiliser la boucle for est montrée ci-dessous :

for(initialiser; vérifier_condition; mettre_à_jour)
    {
        //faire ceci
    }

Dans la syntaxe ci-dessus :

  • initialiser est l'instruction d'initialisation – la variable de contrôle de boucle est initialisée ici.
  • vérifier_condition est la condition qui détermine si la boucle doit continuer.

Tant que vérifier_condition est vraie, le corps de la boucle est exécuté.

  • L'instruction mettre_à_jour met à jour la variable de contrôle de boucle après que les instructions du corps de la boucle soient exécutées.

Flux de contrôle dans les boucles for en C

Le flux de contrôle est le suivant :

  1. Initialiser le compteur – l'instruction initialiser est exécutée. Cela ne se produit qu'une seule fois, au début de la boucle.
  2. Vérifier si la condition de boucle est vraie – l'expression vérifier_condition est évaluée. Si la condition est vraie, passer à l'étape 3. Si fausse, quitter la boucle.
  3. Exécuter les instructions du corps de la boucle.
  4. Mettre à jour le compteur – l'instruction mettre_à_jour est exécutée.
  5. Aller à l'étape 2.

Cela est également illustré ci-dessous :

Image Boucle For en C

Maintenant que vous avez une idée de comment les boucles for fonctionnent, prenons un exemple simple pour voir la boucle for en action.

Exemple de boucle for en C

Écrivons une simple boucle for pour compter jusqu'à 10, et afficher la valeur du compteur à chaque passage dans la boucle.

#include <stdio.h>

int main() 
{
   for(int count = 0; count <= 10; count++)
   {
       printf("%d\n",count);
   }
   return 0;
}

Dans l'extrait de code ci-dessus,

  • count est la variable de compteur, et elle est initialisée à 0.
  • La condition de test ici est count <= 10. Par conséquent, count peut être au plus 10 pour que la boucle continue.
  • Dans le corps de la boucle, la valeur de count est affichée.
  • Et la valeur de count est augmentée de 1.
  • Le contrôle atteint ensuite la condition count <= 10 et la boucle continue si la condition est évaluée à vraie.
  • Dans cet exemple, la condition de boucle count <= 10 est évaluée à faux lorsque la valeur de count est 11 – et votre boucle se termine.

Et voici le résultat :

//Sortie
0
1
2
3
4
5
6
7
8
9
10

Lorsque vous utilisez des boucles, vous devez toujours vous assurer que votre boucle se termine à un moment donné.

Vous savez que la boucle continue tant que vérifier_condition est vraie. Et la boucle s'arrête une fois que vérifier_condition devient fausse. Mais que se passe-t-il lorsque votre condition de boucle est toujours vraie ?

Eh bien, c'est là que vous tombez dans une boucle infinie – votre boucle continue indéfiniment, jusqu'à ce que votre programme plante, ou que votre système s'éteigne.😢

Vous en apprendrez plus sur les boucles infinies dans la section suivante.

Boucle for infinie

Lorsque votre boucle ne s'arrête pas et continue de tourner indéfiniment, vous avez une boucle infinie. Prenons quelques exemples pour comprendre cela.

▶ Dans la construction de la boucle for, si vous ne spécifiez pas la condition de test (vérifier_condition), elle est considérée comme vraie par défaut.

En conséquence, votre condition ne devient jamais fausse. Et la boucle continuera de tourner indéfiniment jusqu'à ce que vous forciez l'arrêt du programme.

Cela est montré dans l'extrait de code ci-dessous :

#include <stdio.h>

int main()
{

    for(int i = 0; ; i++) //la condition de test n'est pas mentionnée
    {
        printf("%d ",i);
    }

    return 0;
}

▶ Voici un autre exemple.

Vous initialisez la variable de compteur i à 10. Et i augmente de 1 après chaque itération.

Remarquez comment la condition de test est i > 0. La valeur de i ne sera-t-elle pas toujours supérieure à 0 ?

Vous avez donc une autre boucle infinie, comme montré :

#include <stdio.h>

int main()
{

    for(int i = 10; i > 0 ; i++) //la condition de test est toujours VRAIE
    {
        printf("%d ",i);
    }

    return 0;
}

▶ Dans cet exemple, votre variable de compteur i est initialisée à 0. Mais elle diminue de 1 à chaque itération.

En conséquence, i est toujours inférieur à 10. Donc la condition i < 10 est toujours vraie, et vous aurez une boucle infinie.

#include <stdio.h>

int main()
{

    for(int i = 0; i < 10 ; i--) //la condition de test est toujours VRAIE
    {
        printf("%d",i);
    }

    return 0;
}

Pour éviter de tomber dans des boucles infinies, vous devez définir correctement la condition de boucle.

Si vous êtes débutant, vous poser les questions suivantes peut aider.

Que veux-je que cette boucle fasse ?
Combien de fois veux-je que la boucle s'exécute ?
Quand ma boucle doit-elle s'arrêter ?

Et ensuite, vous pouvez définir votre construction de boucle en conséquence. 👨‍💻

Conclusion

J'espère que vous avez trouvé ce tutoriel utile.

Pour résumer, vous avez appris la syntaxe des boucles for et comment elles fonctionnent. Vous savez également comment anticiper la possibilité de boucles for infinies et comment les éviter en définissant soigneusement votre condition de boucle.

À bientôt dans un autre tutoriel. En attendant, bon codage !