3.5 Control Flow

Les structures de contrôle sont des instructions qui permettent de se "déplacer" différement dans le code. Elles sont essentielles dans beaucoup de cas. Les structures de contrôle les plus courantes sont:

if

Instruction conditionnelle qui permet de choisir entre plusieurs actions en fonction d'une condition. N'oubliez pas de mettre votre condition entre parenthèses!

int x = 918;

if (x > 10) {
    printf("x est supérieur à 10\n");
}

Cet exemple affiche "x est supérieur à 10" car la condition x > 10 est vraie.

Vous pouvez également utiliser else ou else if pour ajouter des conditions supplémentaires:

int x = 8;

if (x > 10) {
    printf("x est supérieur à 10\n");
}

else if (x > 5) {
    printf("x est entre 6 et 10\n");
}

else {
    printf("x est inférieur à 5\n");
}

Cet exemple affiche "x est entre 5 et 10" car la condition x > 10 est fausse et la condition x >= 8 est vraie.

while

Instruction de répétition qui permet de répéter une action tant qu'une condition est vraie.

int x = 0;

while (x < 5) {
    printf("Bonjour !\n");
    x += 1;
}

Cet exemple affiche "Bonjour !" 5 fois.

for

Instruction de répétition qui permet de répéter une action un certain nombre de fois.

for (int x = 0; x < 10; x++) {
    printf("x est égal à %d\n", x);  // %d est remplacé par la valeur de x
}

Cet exemple affiche "Bonjour !" 10 fois.

La boucle for est composée de trois parties:

Équivalent en Python & Ocaml

Python:

for x in range(0, 10):
    print("x est égal à", x)

Notes: la boucle for de C peut mentalement être simplifiée:
for x in range(début, fin)
par
for (int x = début; x < fin; x++)

Ocaml:

for x = 0 to 10 do
    print_string "x est égal à ";
    print_int x;
    print_newline()
done

switch

Instruction de sélection qui permet de choisir entre plusieurs actions en fonction d'une valeur et d'éviter de trop utiliser if et else. Ne pas oublier le break à la fin de chaque cas!

int x = 2;

switch (x) {
    case 1:
        printf("x est égal à 1\n");
        break;

    case 2:
        printf("x est égal à 2\n");
        break;

    default:
        printf("x est différent de 1 et 2\n");
        break;
}

Cet exemple affiche "x est égal à 2".

break

Instruction de sortie qui permet de sortir d'une boucle ou d'une instruction de sélection (comment en Python). N'est pas autorisé à l'Université de Poitiers!

for (int x = 0; x < 10; x++) {
    if (x == 5) {
        break;
    }
    printf("x est égal à %d\n", x);
}

Cet exemple affiche les valeurs de x de 0 à 4.

continue

Instruction de poursuite qui permet de passer à l'itération suivante d'une boucle (comment en Python). N'est pas autorisé à l'Université de Poitiers!

for (int x = 0; x < 10; x++) {
    if (x == 5) {
        continue;
    }
    printf("x est égal à %d\n", x);
}

Cet exemple affiche les valeurs de x de 0 à 9 à part 5.

Petit +

do...while

Instruction de répétition comme while mais la condition est vérifiée à la fin plutôt qu'au début, peut être utile dans certains cas spécifiques.

int x = 0;

do {
    printf("x est égal à %d\n", x);
    x++;
} while (x < 10);