Maîtriser les instructions conditionnelles en C : IF, IF-ELSE et IF-ELSE imbriqués expliqués
Qu'est-ce qu'une instruction conditionnelle en C ?
Les instructions conditionnelles en C sont utilisées pour prendre des décisions basées sur des conditions. Les instructions s'exécutent séquentiellement lorsqu'il n'y a pas de condition autour des instructions. Si vous mettez une condition pour un bloc d'instructions, le flux d'exécution peut changer en fonction du résultat évalué par la condition. Ce processus est appelé prise de décision en « C ».
En programmation « C », les instructions conditionnelles sont possibles grâce aux deux constructions suivantes :
- Instruction if
- Instruction if-else
C'est aussi appelé branchement car un programme décide quelle instruction exécuter en fonction du résultat de la condition évaluée.
Dans ce tutoriel, vous apprendrez :
- Qu'est-ce qu'une instruction conditionnelle ?
- Instruction if
- Opérateurs relationnels
- Instruction if-else
- Expressions conditionnelles
- Instructions if-else imbriquées
- Instructions else-if imbriquées
Instruction if
C'est l'une des instructions conditionnelles puissantes. L'instruction if est responsable de la modification du flux d'exécution d'un programme. L'instruction if est toujours utilisée avec une condition. La condition est évaluée en premier avant d'exécuter toute instruction à l'intérieur du corps du if. La syntaxe de l'instruction if est la suivante :
if (condition) instruction;
La condition évalue à vrai ou faux. Vrai est toujours une valeur non nulle, et faux est une valeur qui contient zéro. Les instructions peuvent être une seule instruction ou un bloc de code entouré d'accolades { }.
Le programme suivant illustre l'utilisation de la construction if en programmation « C » :
#include <stdio.h>
int main() {
int num1=1;
int num2=2;
if(num1<num2) // condition de test
{
printf("num1 is smaller than num2");
}
return 0;
}
Sortie :
num1 is smaller than num2
Le programme ci-dessus illustre l'utilisation de la construction if pour vérifier l'égalité de deux nombres.
- Dans le programme ci-dessus, nous avons initialisé deux variables num1, num2 avec les valeurs 1, 2 respectivement.
- Ensuite, nous avons utilisé if avec une expression de test pour vérifier quel nombre est le plus petit et quel nombre est le plus grand. Nous avons utilisé une expression relationnelle dans la construction if. Puisque la valeur de num1 est plus petite que num2, la condition évaluera à vrai.
- Ainsi, il affichera l'instruction à l'intérieur du bloc if. Après cela, le contrôle sortira du bloc et le programme se terminera avec un résultat réussi.
Opérateurs relationnels
Le C a six opérateurs relationnels qui peuvent être utilisés pour formuler une expression booléenne pour prendre une décision et tester des conditions, ce qui retourne vrai ou faux :
- < inférieur à
- <= inférieur ou égal à
- > supérieur à
- >= supérieur ou égal à
- == égal à
- != non égal à
Notez que le test d'égalité (==) est différent de l'opérateur d'affectation (=) car c'est l'un des problèmes les plus courants auxquels un programmeur fait face en les mélangeant.
Par exemple :
int x = 41;
x = x + 1;
if (x == 42) {
printf("You succeed!");
}
Sortie :
You succeed
Gardez à l'esprit qu'une condition qui évalue à une valeur non nulle est considérée comme vraie.
Par exemple :
int present = 1;
if (present)
printf("There is someone present in the classroom \n");
Sortie :
There is someone present in the classroom
L'instruction if-else
L'instruction if-else est une version étendue de if. La forme générale de if-else est la suivante :
if (expression-de-test) {
Bloc d'instructions vrai
} else {
Bloc d'instructions faux
}
Instructions;
Dans ce type de construction, si la valeur de l'expression-de-test est vraie, alors le bloc d'instructions vrai sera exécuté. Si la valeur de l'expression-de-test est fausse, alors le bloc d'instructions faux sera exécuté. Dans tous les cas, après l'exécution, le contrôle sera automatiquement transféré aux instructions apparaissant en dehors du bloc if.
Les programmes suivants illustrent l'utilisation de la construction if-else :
Nous allons initialiser une variable avec une certaine valeur et écrire un programme pour déterminer si la valeur est inférieure à dix ou supérieure à dix.
#include <stdio.h>
int main() {
int num=19;
if(num<10) {
printf("The value is less than 10");
} else {
printf("The value is greater than 10");
}
return 0;
}
Sortie :
The value is greater than 10
- Nous avons initialisé une variable avec la valeur 19. Nous devons déterminer si le nombre est plus grand ou plus petit que 10 en utilisant un programme « C ». Pour ce faire, nous avons utilisé la construction if-else.
- Ici, nous avons fourni une condition num<10 car nous devons comparer notre valeur avec 10.
- Comme vous pouvez le voir, le premier bloc est toujours un bloc vrai ce qui signifie, si la valeur de l'expression-de-test est vraie alors le premier bloc qui est if, sera exécuté.
- Le second bloc est un bloc else. Ce bloc contient les instructions qui seront exécutées si la valeur de l'expression-de-test devient fausse. Dans notre programme, la valeur de num est supérieure à dix, donc la condition de test devient fausse et le bloc else est exécuté. Ainsi, notre sortie proviendra d'un bloc else qui est « The value is greater than 10 ». Après le if-else, le programme se terminera avec un résultat réussi.
En programmation « C », nous pouvons utiliser plusieurs constructions if-else les unes dans les autres, ce qui est appelé imbrication d'instructions if-else.
Expressions conditionnelles
Il existe une autre façon d'exprimer une instruction if-else en introduisant l'opérateur ?:. Dans une expression conditionnelle, l'opérateur ?: n'a qu'une seule instruction associée au if et au else.
Par exemple :
#include <stdio.h>
int main() {
int y;
int x = 2;
y = (x >= 6) ? 6 : x;/* Équivalent à : if (x >= 5) y = 5; else y = x; */
printf("y =%d ",y);
return 0;
}
Sortie :
y =2
Instructions if-else imbriquées
Lorsqu'une série de décisions est requise, if-else imbriqué est utilisé. L'imbrication signifie utiliser une construction if-else à l'intérieur d'une autre.
Écrivons un programme pour illustrer l'utilisation de if-else imbriqué.
#include <stdio.h>
int main() {
int num=1;
if(num<10) {
if(num==1) {
printf("The value is:%d\n",num);
} else {
printf("The value is greater than 1");
}
} else {
printf("The value is greater than 10");
}
return 0;
}
Sortie :
The value is:1
Le programme ci-dessus vérifie si un nombre est inférieur ou supérieur à 10 et affiche le résultat en utilisant la construction if-else imbriquée.
- Premièrement, nous avons déclaré une variable num avec la valeur 1. Ensuite, nous avons utilisé la construction if-else.
- Dans le if-else externe, la condition fournie vérifie si un nombre est inférieur à 10. Si la condition est vraie, alors et seulement alors elle exécutera la boucle interne. Dans ce cas, la condition est vraie, donc le bloc interne est traité.
- Dans le bloc interne, nous avons à nouveau une condition qui vérifie si notre variable contient la valeur 1 ou non. Lorsque la condition est vraie, alors elle traitera le bloc if sinon elle traitera un bloc else. Dans ce cas, la condition est vraie, donc le bloc if est exécuté et la valeur est affichée sur l'écran de sortie.
- Le programme ci-dessus affichera la valeur d'une variable et sortira avec succès.
Essayez de changer la valeur de la variable pour voir comment le programme se comporte.
NOTE : Dans if-else imbriqué, nous devons faire attention à l'indentation car plusieurs constructions if-else sont impliquées dans ce processus, il devient donc difficile de distinguer les constructions individuelles. Une indentation correcte facilite la lecture du programme.
Instructions else-if imbriquées
Else-if imbriqué est utilisé lorsque des décisions multi-chemins sont requises.
La syntaxe générale de la façon dont les échelles else-if sont construites en programmation « C » est la suivante :
if (test - expression 1) {
statement1;
} else if (test - expression 2) {
Statement2;
} else if (test - expression 3) {
Statement3;
} else if (test - expression n) {
Statement n;
} else {
default;
}
Statement x;
Ce type de structure est connu sous le nom d'échelle else-if. Cette chaîne ressemble généralement à une échelle, d'où le nom d'échelle else-if. Les expressions-de-test sont évaluées de haut en bas. Chaque fois qu'une expression-de-test vraie est trouvée, l'instruction associée est exécutée. Lorsque toutes les n expressions-de-test deviennent fausses, alors l'instruction else par défaut est exécutée.
Voyons le fonctionnement réel avec l'aide d'un programme.
#include <stdio.h>
int main() {
int marks=83;
if(marks>75){
printf("First class");
} else if(marks>65){
printf("Second class");
} else if(marks>55){
printf("Third class");
} else{
printf("Fourth class");
}
return 0;
}
Sortie :
First class
Le programme ci-dessus affiche la note selon les points marqués dans un test. Nous avons utilisé la construction d'échelle else-if dans le programme ci-dessus.
- Nous avons initialisé une variable avec des notes. Dans la structure d'échelle else-if, nous avons fourni diverses conditions.
- La valeur de la variable marks sera comparée avec la première condition, comme elle est vraie, l'instruction associée sera affichée sur l'écran de sortie.
- Si la première condition de test s'avère fausse, alors elle est comparée avec la seconde condition.
- Ce processus continuera jusqu'à ce que toutes les expressions soient évaluées, sinon le contrôle sortira de l'échelle else-if, et l'instruction par défaut sera affichée.
Essayez de modifier la valeur et remarquez le changement dans la sortie.
Résumé
- La prise de décision ou les instructions de branchement sont utilisées pour sélectionner un chemin en fonction du résultat de l'expression évaluée.
- C'est aussi appelé instructions de contrôle car il contrôle le flux d'exécution d'un programme.
- « C » fournit if, if-else pour les instructions de prise de décision.
- Nous pouvons également imbriquer if-else les uns dans les autres lorsque plusieurs chemins doivent être testés.
- L'échelle else-if est utilisée lorsque nous devons vérifier diverses voies en fonction du résultat de l'expression.
Langue C
- Expressions, instructions et blocs C# : Guide complet avec exemples pratiques
- Maîtriser la logique conditionnelle en C# : If, If-Else, If-ElseIf et instructions If imbriquées
- Maîtriser les instructions conditionnelles C++ : if, if...else et if...else imbriqué expliqués
- Maîtriser les instructions conditionnelles en C : If, Else et plus
- Opérateurs C++ expliqués : Types, exemples et programmes d'exemple
- Maîtriser le switch-case en C++ : Syntaxe, utilisation et exemples pratiques
- Les structures en C++ expliquées avec un exemple pratique
- Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques
- Struct vs Class en C++ : Différences Clés, Syntaxe et Cas d'Utilisation Optimaux