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.
Comprendre la syntaxe des instructions if (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
ifetelse ifvé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
elseassure 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 = 95pour obtenir une note "A". - Réglez
score = 85pour obtenir une note "B". - Réglez
score = 55pour 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 une comparaison
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 = 20etb = 10pour voir le cas oùa > b - Réglez
a = bpour 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
elsecapture 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 = 20pour voir le message "adulte" - Réglez
age = 16pour 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 de multiples 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 ifcré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
elsefinal 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 = 95pour obtenir une note "A" - Réglez
score = 75pour obtenir une note "C" - Réglez
score = 55pour 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;etchar 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 variableage.scanf(" %c", &is_student);lit le statut d'étudiant de l'utilisateur. L'espace avant%cest un détail crucial qui évite les problèmes de tampon d'entrée.- L'instruction
ifexterne vérifie d'abord si l'utilisateur a moins de 18 ans, créant notre branche de décision principale. - Les instructions
ifinternes 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.



