3.5 Structures de contrôle

Les structures de contrôle sont des instructions qui permettent de se "déplacer" différement dans le code. 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 et else if pour ajouter des conditions supplémentaires:

int x = 8;

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

else if (x == 8 || x == 9) {
    printf("x est 8 ou 9\n");
}

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

Cet exemple affiche "x est 8 ou 9" car la condition x > 10 est fausse et la condition x == 8 || x == 9 est vraie.

Petit +

L'opérateur conditionnel ternaire permet d'avoir un if/else en une seule ligne:

a ? b : c

Cela équivaut en Python à:

b if a else c

Ou en Ocaml:

if a then b else c

Source: Wikipedia



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 peut é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 (comme en Python). N'est pas autorisé à l'Université de Poitiers!

for (int x = 0; x < 10; x++) {
    if (x == 5) {
        break;
    }
    printf("%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 (comme en Python). N'est pas autorisé à l'Université de Poitiers!

for (int x = 0; x < 10; x++) {
    if (x == 5) {
        continue;
    }
    printf("%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 {
    x++;
    printf("%d\n", x);
} while (x < 10);

Cet exemple affiche les valeurs de x de 1 à 10.