Mes notes sur le C, partie 5 [Les boucles]

Mes notes sur le C, partie 5 [Les boucles]

[menu_c]

Tout comme les conditions les boucles font partie des éléments que l’on retrouve dans tout les langages de programmations.

Premièrement il y a plusieurs façon pour faire une boucle.

while(condition)
{
    // Des trucs
}

do
{
    // Des trucs
}while(condition);


for(variable; condition; variable +/-) 
{
    // Des trucs
}

 

Le plus simple est de vous expliquer la boucle while en premier:

#include <stdio.h>

int main(int argc, char *argv[])
{
    int loop = 5;

    while(loop != 0) 
    {
        printf("Coucou \n");
        loop--;
    }
}

La boucle while du dessus se déroule ainsi:

Tant que la variable loop est différente de 0, affiche “Coucou” et réduit la variable loop de 1.

Au final vous avez 5 Coucou dans le terminal.

Si vous enlever “loop–” vous allez vous retrouver avec une boucle infini et qui prendra donc beaucoup de ressource.

 

Il est possible de faire des boucles infinis mais il doit toujours il y avoir un moyen de sortir de cette boucle comme ici par exemple :

    int loop = 5;

    while(1)
    {
        printf("Coucou \n");

        loop--;
        if(loop == 0)
        {
            break;
        }
    }

Le résultat est le même que précédemment, sauf que nous avons une boucle sur une condition toujours vrai, pour rappel 1 = true, le break permet de sortir de la boucle.

Vous pouvez enlever le break pour voir.

 

Ensuite la boucle “do … while”, elle ressemble beaucoup à la boucle while sauf qu’on fera au moins un tour quoiqu’il arrive.

Une autre boucle while pour vous montrer la différence :

#include <stdio.h>

int main(int argc, char *argv[])
{
    int loop = 5;

    while( loop < 5 )
    {
        printf("Coucou \n");

        loop--;
        if(loop == 0)
        {
            break;
        }
    }
}

Ce code ne sert à rien, au début loop = 5, ensuite le programme arrive sur le while qui demande si loop est inférieur à 5, la réponse est non, donc il zappe complètement la boucle.

Par contre, maintenant, la meme chose avec un do … while :

#include <stdio.h>

int main(int argc, char *argv[])
{
    int loop = 5;

    do
    {
        printf("Coucou \n");

        loop--;
        if(loop == 0)
        {
            break;
        }

    }while( loop < 5 );

}

Ce programme affiche 5 fois Coucou.

On rentre dans la boucle au moins une fois et vu que dans cette boucle on passe de 5 à 4 grâce à “loop–“.

Le while qui suit retourne 1 donc le programme continue jusqu’à l’infini ou jusqu’à la rencontre d’un “break”.

 

La boucle for permet de faire la même chose que la boucle while (et inversement), simplement la boucle for est plus clair dans certaine situation, je vais reprendre le code du début mais cette fois avec la boucle for :

#include <stdio.h>

int main(int argc, char *argv[])
{
    int loop;
    for( loop = 5; loop != 0; loop-- )
    {
        printf("Coucou \n");
    }
}

Personnellement je trouve cette boucle plus simple à utiliser.

 

Pour finir tout comme les conditions il est possible d’imbriquer des boucles :

#include <stdio.h>

int main(int argc, char *argv[])
{
    int loop1;
    int loop2;

    for( loop1 = 3; loop1 != 0; loop1-- )
    {

        printf("Loop 1 \n");

        for( loop2 = 3; loop2 != 0; loop2-- )
        {
            printf("Loop 2 \n");
        }

    }
}

 

Partager

One thought on “Mes notes sur le C, partie 5 [Les boucles]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *