Implémenter des instructions conditionnelles en C

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à implémenter des instructions conditionnelles en programmation C. Vous commencerez par présenter la syntaxe de base des instructions if, else if et else, puis vous écrirez une simple instruction if pour comparer deux nombres. Vous explorerez également l'utilisation de else if pour gérer plusieurs conditions et apprendrez à compiler et tester vos programmes avec diverses entrées.

Ce laboratoire couvre les concepts fondamentaux de la logique conditionnelle, qui sont essentiels pour créer des fonctionnalités de prise de décision dans vos programmes C. À la fin de ce laboratoire, vous aurez une bonne compréhension de l'utilisation des instructions conditionnelles pour contrôler le flux de votre code en fonction de différentes conditions.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/operators("Operators") c/ControlFlowGroup -.-> c/if_else("If...Else") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-438331{{"Implémenter des instructions conditionnelles en C"}} c/operators -.-> lab-438331{{"Implémenter des instructions conditionnelles en C"}} c/if_else -.-> lab-438331{{"Implémenter des instructions conditionnelles en C"}} c/user_input -.-> lab-438331{{"Implémenter des instructions conditionnelles en C"}} c/output -.-> lab-438331{{"Implémenter des instructions conditionnelles en C"}} end

Comprendre la syntaxe des instructions conditionnelles (if, else if, else)

Dans le monde de la programmation, prendre des décisions est une compétence essentielle, et les instructions conditionnelles sont la clé pour y parvenir. Dans cette étape, nous allons plonger profondément dans le concept fondamental des instructions conditionnelles en programmation C en utilisant la syntaxe if, else if et else. Ces outils puissants permettent à votre programme de répondre dynamiquement à différentes situations, un peu comme un organigramme de prise de décision.

Qu'est-ce qu'une instruction if?

Une instruction if est essentiellement un point de contrôle logique dans votre code. Elle évalue une condition entre parenthèses (). Imaginez-la comme un gardien de porte qui décide si un bloc de code spécifique doit être exécuté. Si la condition est vraie, le bloc de code entre accolades {} sera exécuté ; si la condition est fausse, l'ensemble du bloc est ignoré, permettant au programme de passer à la prochaine série d'instructions.

Syntaxe de base de l'instruction if

Voici la syntaxe de base d'une instruction if :

if (condition) {
    // code à exécuter si la condition est vraie
}

Cette structure simple constitue la base de la prise de décision en programmation. La condition peut être n'importe quelle expression qui s'évalue à vrai ou faux, comme des comparaisons, des opérations logiques ou des vérifications booléennes.

Ajout de else if et else

Au fur et à mesure que les programmes deviennent plus complexes, vous aurez souvent besoin de gérer plusieurs scénarios possibles. C'est là que else if et else entrent en jeu, vous permettant de créer des arbres de décision plus sophistiqués.

if (condition1) {
    // code à exécuter si condition1 est vraie
} else if (condition2) {
    // code à exécuter si condition2 est vraie
} else {
    // code à exécuter si aucune des conditions ci-dessus n'est vraie
}

Cette structure vous permet de chaîner plusieurs conditions, else servant de solution de repli pour tous les scénarios non couverts par les conditions précédentes.

Exemple de programme

Créons un programme simple pour démontrer la logique conditionnelle. Créez un nouveau fichier appelé conditions.c et ajoutez le code suivant :

cd ~/project
touch conditions.c
#include <stdio.h>

int main() {
    int score = 75;

    if (score >= 90) {
        printf("Grade: A\n");
    } else if (score >= 80) {
        printf("Grade: B\n");
    } else if (score >= 70) {
        printf("Grade: C\n");
    } else if (score >= 60) {
        printf("Grade: D\n");
    } else {
        printf("Grade: F\n");
    }

    return 0;
}

Explication

Ce programme illustre un scénario classique de système de notation. Analysons ce qui se passe :

  • int score = 75; crée une variable pour stocker la note numérique d'un étudiant.
  • Chaque instruction if et else if vérifie la note par rapport à différents seuils de notation.
  • Les conditions sont évaluées dans l'ordre, du plus élevé au plus bas.
  • La première condition vraie détermine la note qui sera affichée.
  • Si aucune condition n'est vraie, le bloc else assure l'attribution d'une note par défaut.

Compilation et exécution du programme

Pour compiler et exécuter le programme, utilisez les commandes suivantes dans votre terminal :

gcc conditions.c -o conditions
./conditions

Exemple de sortie :

Grade: C

Effectuez des expériences en changeant la valeur de score pour voir comment la sortie change :

  • Réglez score = 95 pour obtenir une note "A".
  • Réglez score = 85 pour obtenir une note "B".
  • Réglez score = 55 pour obtenir une note "F".

Cette approche pratique vous aidera à comprendre comment les instructions conditionnelles contrôlent le flux du programme et prennent des décisions en fonction de différentes valeurs d'entrée.

Écrire une simple instruction if pour comparer des nombres

Dans cette étape, nous allons explorer comment créer un programme de comparaison simple en utilisant des instructions if en C. Nous allons écrire un programme qui compare deux nombres et fournit différents résultats en fonction de leur relation.

La programmation repose sur la logique et la prise de décision. Tout comme dans la vie réelle, où nous prenons des décisions en fonction de certaines conditions, en programmation, nous utilisons des instructions conditionnelles pour guider le flux de notre code.

Ouvrez le WebIDE et créez un nouveau fichier appelé number_compare.c dans le répertoire ~/project. Voici un programme qui illustre la comparaison de nombres :

cd ~/project
touch number_compare.c
#include <stdio.h>

int main() {
    int a = 10;
    int b = 20;

    if (a < b) {
        printf("%d is less than %d\n", a, b);
    }

    if (a == b) {
        printf("%d is equal to %d\n", a, b);
    }

    if (a > b) {
        printf("%d is greater than %d\n", a, b);
    }

    return 0;
}

Lorsque nous écrivons des instructions conditionnelles, nous utilisons des opérateurs de comparaison pour évaluer les relations entre les valeurs. Ces opérateurs sont le langage de la comparaison en programmation, nous permettant de prendre des décisions logiques.

Analysons les opérateurs de comparaison :

  • < signifie "inférieur à"
  • == signifie "égal à"
  • > signifie "supérieur à"

Ces opérateurs agissent comme des juges logiques, comparant deux valeurs et déterminant leur relation. Lorsque la condition à l'intérieur de l'instruction if est vraie, le bloc de code est exécuté.

Compilez et exécutez le programme :

gcc number_compare.c -o number_compare
./number_compare

Exemple de sortie :

10 is less than 20

Comprendre le fonctionnement des comparaisons est essentiel en programmation. En changeant les valeurs et en expérimentant avec différentes conditions, vous développerez une compréhension plus approfondie de la manière dont les programmes prennent des décisions.

Essayez de modifier les valeurs de a et b pour voir différents résultats de comparaison :

  • Changez a = 20 et b = 10 pour voir le cas où a > b
  • Réglez a = b pour voir la comparaison d'égalité
  • Expérimentez avec différents nombres pour comprendre le fonctionnement des comparaisons

Au fur et à mesure que vous vous familiariserez avec les comparaisons de base, vous découvrirez des opérateurs de comparaison plus complexes qui offrent encore plus de flexibilité :

  • <= (inférieur ou égal à)
  • >= (supérieur ou égal à)
  • != (différent de)

Ces opérateurs élargissent votre capacité à créer une logique de prise de décision plus nuancée et sophistiquée dans vos programmes. Chaque comparaison est comme un petit test qui détermine le chemin que votre code suivra, rendant vos programmes plus dynamiques et réactifs.

Ajouter une clause else pour un flux alternatif

L'instruction else offre un moyen puissant de gérer les cas qui ne correspondent pas à la condition principale, créant essentiellement un comportement de secours ou par défaut pour votre programme. Ce mécanisme garantit que votre code peut répondre intelligemment à diverses situations.

Créez un nouveau fichier appelé age_check.c dans le WebIDE. Voici un programme qui illustre l'utilisation de if-else :

cd ~/project
touch age_check.c
#include <stdio.h>

int main() {
    int age = 16;

    if (age >= 18) {
        printf("You are an adult and can vote.\n");
    } else {
        printf("You are a minor and cannot vote yet.\n");
    }

    return 0;
}

Analysons le code en détail :

  • if (age >= 18) vérifie si l'âge est de 18 ans ou plus
  • Si la condition est vraie, il affiche le premier message
  • else capture tous les cas où la condition est fausse
  • Dans cet exemple, il affiche un message pour les personnes de moins de 18 ans

Lorsque vous travaillez avec des instructions conditionnelles, imaginez-les comme des points de décision dans votre programme. L'instruction if vérifie une condition, et la clause else fournit un chemin alternatif lorsque cette condition n'est pas remplie.

Compilez et exécutez le programme :

gcc age_check.c -o age_check
./age_check

Exemple de sortie :

You are a minor and cannot vote yet.

Essayez de changer la valeur de age :

  • Réglez age = 20 pour voir le message "adulte"
  • Réglez age = 16 pour voir le message "mineur"

Expérimenter avec différentes valeurs vous aide à comprendre le fonctionnement de la logique conditionnelle dans la pratique.

Vous pouvez également créer des conditions plus complexes avec else if, qui permet de vérifier plusieurs conditions :

#include <stdio.h>

int main() {
    int temperature = 25;

    if (temperature < 0) {
        printf("It's freezing outside!\n");
    } else if (temperature < 10) {
        printf("It's cold today.\n");
    } else if (temperature < 20) {
        printf("The weather is mild.\n");
    } else {
        printf("It's warm outside.\n");
    }

    return 0;
}

Cet exemple montre comment else if peut créer plusieurs vérifications de conditions avec un else final comme solution de repli. Chaque condition est évaluée dans l'ordre, et le bloc de code de la première condition vraie est exécuté. Le else final sert de cas par défaut lorsque aucune des conditions précédentes n'est remplie.

Utiliser else if pour gérer plusieurs conditions

Dans cette étape, nous allons explorer comment utiliser else if pour gérer plusieurs conditions dans un scénario plus sophistiqué. Cette approche vous permet de créer une logique de prise de décision plus nuancée dans vos programmes, au-delà des simples choix binaires.

Créez un nouveau fichier appelé grade_calculator.c dans le WebIDE. Voici un programme qui illustre l'utilisation de plusieurs conditions avec else if :

cd ~/project
touch grade_calculator.c
#include <stdio.h>

int main() {
    int score = 85;

    if (score >= 90) {
        printf("Excellent! Your grade is A.\n");
    } else if (score >= 80) {
        printf("Great job! Your grade is B.\n");
    } else if (score >= 70) {
        printf("Good work. Your grade is C.\n");
    } else if (score >= 60) {
        printf("You passed. Your grade is D.\n");
    } else {
        printf("Sorry, you failed. Your grade is F.\n");
    }

    return 0;
}

Analysons le code et comprenons le fonctionnement de else if :

  • Chaque else if crée une condition supplémentaire à vérifier
  • Les conditions sont évaluées de haut en bas de manière séquentielle
  • Le bloc de la première condition vraie sera exécuté, et les conditions suivantes seront ignorées
  • Le else final sert de solution de repli pour toute valeur qui ne répond pas aux conditions précédentes

Cette approche est similaire à la manière dont nous prenons des décisions dans la vie réelle, en vérifiant plusieurs possibilités jusqu'à trouver la bonne correspondance. Dans cet exemple, le calcul de la note illustre une utilisation typique de la logique conditionnelle imbriquée.

Compilez et exécutez le programme :

gcc grade_calculator.c -o grade_calculator
./grade_calculator

Exemple de sortie :

Great job! Your grade is B.

Vous pouvez expérimenter avec différents scénarios en changeant la valeur de score :

  • Réglez score = 95 pour obtenir une note "A"
  • Réglez score = 75 pour obtenir une note "C"
  • Réglez score = 55 pour obtenir une note "F"

Voici un autre exemple qui montre comment else if peut être utilisé pour des scénarios logiques plus complexes :

#include <stdio.h>

int main() {
    int temperature = 25;

    if (temperature < 0) {
        printf("Freezing cold!\n");
    } else if (temperature < 10) {
        printf("Very cold\n");
    } else if (temperature < 20) {
        printf("Cool\n");
    } else if (temperature < 30) {
        printf("Warm\n");
    } else {
        printf("Hot!\n");
    }

    return 0;
}

Ce deuxième exemple illustre comment vous pouvez créer des plages précises en utilisant des instructions else if, en divisant une échelle continue en catégories discrètes. En utilisant des conditions soigneusement définies, vous pouvez créer des structures de prise de décision sophistiquées qui répondent intelligemment à différentes valeurs d'entrée.

Instructions if imbriquées

Lorsque vous écrivez des programmes qui doivent évaluer plusieurs conditions, vous constaterez souvent qu'une seule instruction if n'est pas suffisante pour saisir toute la complexité de votre processus de prise de décision. C'est là que les instructions if imbriquées deviennent incroyablement utiles, vous permettant de créer des couches de logique conditionnelle capables de gérer des scénarios complexes.

Qu'est-ce qu'une instruction if imbriquée?

Une instruction if imbriquée est essentiellement une instruction if placée à l'intérieur d'un autre bloc if ou else. Imaginez cela comme une série de points de contrôle de prise de décision, où chaque condition suivante n'est évaluée que si la condition précédente est vraie. Cette approche permet un contrôle plus granulaire et précis du flux de votre programme.

Exemple de programme

Créons un programme qui utilise des instructions if imbriquées pour déterminer la catégorie d'une personne en fonction de son âge et de son statut d'étudiant. Créez un nouveau fichier appelé nested_conditions.c et ajoutez le code suivant :

cd ~/project
touch nested_conditions.c
#include <stdio.h>

int main() {
    int age;
    char is_student;

    printf("Enter your age: ");
    scanf("%d", &age);

    printf("Are you a student? (y/n): ");
    scanf(" %c", &is_student);

    if (age < 18) {
        if (is_student == 'y') {
            printf("You are a minor and a student.\n");
        } else {
            printf("You are a minor and not a student.\n");
        }
    } else {
        if (is_student == 'y') {
            printf("You are an adult and a student.\n");
        } else {
            printf("You are an adult and not a student.\n");
        }
    }

    return 0;
}

Explication

Dans ce programme, nous montrons comment les instructions if imbriquées peuvent nous aider à créer des arbres de décision plus sophistiqués. Analysons les éléments clés :

  • int age; et char is_student; déclarent des variables pour stocker l'âge et le statut d'étudiant de l'utilisateur.
  • scanf("%d", &age); invite l'utilisateur à saisir son âge et le stocke dans la variable age.
  • scanf(" %c", &is_student); lit le statut d'étudiant de l'utilisateur. L'espace avant %c est un détail crucial qui évite les problèmes de tampon d'entrée.
  • L'instruction if externe vérifie d'abord si l'utilisateur a moins de 18 ans, créant notre branche de décision principale.
  • Les instructions if internes affinent ensuite la catégorisation en fonction du statut d'étudiant au sein de chaque groupe d'âge.

Compilation et exécution du programme

Pour compiler et exécuter le programme, utilisez les commandes suivantes dans votre terminal :

gcc nested_conditions.c -o nested_conditions
./nested_conditions

Exemple de sortie :

Enter your age: 17
Are you a student? (y/n): y
You are a minor and a student.

Ce programme démontre la puissance des instructions if imbriquées. En expérimentant avec différentes entrées, vous verrez comment le programme ajuste dynamiquement sa sortie :

  • Entrez l'âge 20 et le statut d'étudiant 'y' pour voir le message "adult and a student".
  • Entrez l'âge 15 et le statut d'étudiant 'n' pour voir le message "minor and not a student".

Chaque combinaison d'entrées déclenche un chemin différent à travers la structure conditionnelle imbriquée, mettant en évidence la flexibilité et la précision de cette technique de programmation.

Résumé

Dans ce laboratoire, vous avez appris à utiliser les instructions conditionnelles en programmation C avec les syntaxes if, else if et else. Vous avez commencé par découvrir la structure de base des instructions conditionnelles, qui permettent à votre programme de prendre des décisions et d'exécuter différents blocs de code en fonction de conditions spécifiques. Vous avez ensuite écrit une simple instruction if pour comparer deux nombres et fournir différents résultats en fonction de leur relation. Enfin, vous avez exploré l'utilisation de else if pour gérer plusieurs conditions de manière séquentielle et du bloc else pour capturer toutes les valeurs qui ne répondent pas aux conditions précédentes. Les concepts clés abordés dans ce laboratoire incluent la compréhension de la syntaxe des instructions conditionnelles, l'écriture de comparaisons simples et l'utilisation de else if et else pour créer une logique de prise de décision plus complexe dans vos programmes C.