Structures de Contrôle en Langage C

Instruction conditionnelle if

Pour exécuter du code uniquemant lorsqu'une condition est vérifiée, utilisez l'instruction if :

#include <stdio.h>

int main() {
    int valeur = 5;
    if (valeur > 10) {
        printf("Supérieure à 10");
    }
    printf("Exécution systématique");
}

Syntaxe standard :

if(condition) {
    // Code exécuté si vrai
}

Pour gérer les cas alternatifs, combinez avec else :

#include <stdio.h>

int main() {
    int valeur = 8;
    if (valeur > 10) {
        printf("Supérieure à 10");
    } else {
        printf("Inférieure ou égale à 10");
    }
}

Pour des conditions multiples, utilisez else if :

#include <stdio.h>

int main() {
    int note = 85;
    if (note >= 90) {
        printf("Excellent");
    } else if (note >= 70) {
        printf("Bien");
    } else if (note >= 60) {
        printf("Satisfaisant");
    } else {
        printf("Insuffisant");
    }
}

Les instructions conditionnelles supportent l'imbrication :

#include <stdio.h>

int main() {
    int score = 42;
    if (score < 60) {
        if (score > 35) {
            printf("Cours de mathématiques");
        } else {
            printf("Cours de français");
        }
    }
}

Enstruction de sélection switch

Pour des branchements multiples basés sur une valeur, utilisez switch :

#include <stdio.h>

int main() {
    char categorie = 'B';
    switch (categorie) {
        case 'A':  
            printf("Groupe A");
            break;  
        case 'B':
            printf("Groupe B");
            break;
        case 'C':
            printf("Groupe C");
            break;
    }
}

Le cas default gère les valeurs non prévues :

#include <stdio.h>

int main() {
    char categorie = 'X';
    switch (categorie) {
        case 'A':  
            printf("Groupe A");
            break;  
        case 'B':
            printf("Groupe B");
            break;
        default:  
            printf("Groupe par défaut");
    }
}

Il est possible d'imbriquer des structures :

#include <stdio.h>

int main() {
    int score = 95;
    char niveau = 'A';
    switch (niveau) {
        case 'A':
            if (score > 90) {
                printf("Groupe avancé");
            } else {
                printf("Groupe standard");
            }
            break;
    }
}

Boucle itérative for

Pour exécuter du code de manière répétitive :

#include <stdio.h>

int main() {
    for (int compteur = 0; compteur < 3; compteur++) {
        printf("Répétition ");
    }
}

Les éléments de contrôle sont :

  • Initialisation : exécutée une fois au début
  • Condition : vérifiée avant chaque itération
  • Incrément : exécuté après chaque itération

break interrompt la boucle :

#include <stdio.h>

int main() {
    for (int i = 0; i < 10; i++) {
        if (i == 6) {
            break;
        }
        printf("%d ", i);
    }
}

continue passe à l'itération suivante :

#include <stdio.h>

int main() {
    for (int j = 0; j < 10; j++) {
        if (j == 5) {
            continue;
        }
        printf("%d ", j);
    }
}

Boucle conditionnele while

Exécute tant qu'une condition est vraie :

#include <stdio.h>

int main() {
    int valeur = 128;
    while (valeur > 0) {
        printf("%d ", valeur);
        valeur /= 2;
    }
}

La variante do-while garantit une exécution minimale :

#include <stdio.h>

int main() {
    int nombre = 5;
    do {
        printf("Exécuté au moins une fois");
    } while (nombre < 3);
}

Exemple pratique : Nombres d'Armstrong

#include <stdio.h>

int main() {
    for (int nombre = 100; nombre < 1000; nombre++) {
        int centaines = nombre / 100;
        int dizaines = (nombre / 10) % 10;
        int unites = nombre % 10;
        int somme_cubes = centaines*centaines*centaines 
                        + dizaines*dizaines*dizaines 
                        + unites*unites*unites;
        if (somme_cubes == nombre) {
            printf("%d ", nombre);
        }
    }
}

Exemple pratique : Table de multiplication

#include <stdio.h>

int main() {
    for (int ligne = 1; ligne <= 9; ligne++) {
        for (int colonne = 1; colonne <= ligne; colonne++) {
            printf("%dx%d=%-2d\t", colonne, ligne, colonne * ligne);
        }
        printf("\n");
    }
}

Exemple pratique : Suite de Fibonacci

#include <stdio.h>

int main() {
    int limite = 7;
    int precedent = 0;
    int courant = 1;
    for (int position = 1; position < limite; position++) {
        int suivant = precedent + courant;
        precedent = courant;
        courant = suivant;
    }
    printf("%d", courant);
}

Étiquettes: C if-else switch-case for while

Publié le 1 juillet à 03h36