English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous découvrirez l'instruction if en langage C (y compris if ... else et if ... else imbriqué) avec l'aide d'exemples.
La syntaxe de cette instruction dans le langage C est :
if (test expression) { //Les instructions à exécuter si l'expression de test est vraie }
L'instruction if évalue l'expression de test dans les parenthèses ()
Si le résultat du calcul de l'expression de test est true, l'if exécute les instructions internes du corps.
Si le résultat du calcul de l'expression de test est false, l'if ne s'exécute pas les instructions internes du corps.
Pour plus d'informations sur quand l'expression de test est évaluée comme true (valeur non nulle) et false (0), veuillez consulterrelationopérateursetOpérateurs logiques.
//Le programme affiche un nombre s'il est négatif #include <stdio.h> int main() { int number; printf("Entrez un entier: "); scanf("%d", &number); //Si le nombre est inférieur à 0, alors c'est true if (number < 0) { printf("Vous avez entré %d.\n", number); } printf("L'instruction if est simple."); return 0; }
Sortie1
Entrez un entier: -25 Vous avez entré -25. L'instruction if est simple.
lorsque l'utilisateur entre-25Lorsque l'expression de test number<0 est évaluée comme true. Par conséquent,Vous avez entré-25 S'affichera à l'écran.
Sortie2
Entrez un entier: 5 L'instruction if est simple.
lorsque l'utilisateur entre5Lorsque l'expression de test number<0 donne un résultat false et que l'if ne s'exécute pas les instructions internes du corps
Les instructions de l'if peuvent avoir un bloc else optionnel. La syntaxe de l'instruction if..else est :
if (test expression) { //Les instructions à exécuter si l'expression de test est vraie } else { // Les instructions à exécuter si l'expression de test est fausse }
Si le résultat du calcul de l'expression de test (test expression) est true,
Les instructions dans l'if sont exécutées.
Les instructions dans l'else sont sautées de l'exécution, c'est-à-dire que les instructions dans l'else ne sont pas exécutées.
Si la valeur de l'expression de test (test expression) est false,
Les instructions dans l'else sont exécutées
Les instructions du corps de l'if sont ignorées, c'est-à-dire qu'elles ne sont pas exécutées.
// Vérifiez si un entier est impair ou pair #include <stdio.h> int main() { int number; printf("Entrez un entier: "); scanf("%d", &number); //si le reste est 0, alors c'est true if (number%2 == 0) { printf("%d est un nombre pair.", number); } else { printf("%d est un nombre impair.", number); } return 0; }
Résultat de la sortie
Entrez un entier: 23 23 est un nombre impair.
lorsque l'utilisateur entre23lorsque, (expression de test) l'expression de test number%2L'évaluation du résultat de ==0 est false. Par conséquent, les instructions du corps else seront exécutées.
if...else if...else exécute deux instructions différentes en fonction de l'expression de test (expression de test) qui est true ou false. Il est applicable aux cas où il est nécessaire de choisir entre plusieurs possibilités.
if...else if...else vous permet de vérifier plusieurs expressions de test et d'exécuter différentes instructions.
if (expression de test1) { // Instructions } else if (expression de test2) { // Instructions } else if (expression de test3) { // Instructions } . . else { // Instructions }
//Le programme utilise les symboles =, > ou < pour comparer deux entiers #include <stdio.h> int main() { int number1, number2; printf("Entrez deux entiers: "); scanf("%d %d", &number1, &number2); //Vérifiez si deux entiers sont égaux if (number1 == number2) { printf("Résultat: %d = %d", number1, number2); } //Vérifiez number1Est-ce que number est supérieur à number2. else if (number1 > number2) { printf("Résultat: %d > %d", number1, number2); } //Si les deux expressions de test ci-dessus sont toutes deux fausses, exécutez les instructions suivantes else { printf("Résultat: %d < %d", number1, number2); } return 0; }
Résultat de la sortie
Entrez deux entiers: 12 23 Résultat: 12 < 23
Il est possible d'inclure une autre instruction if...else dans le corps d'une autre instruction if...else.
Le programme suivant montre un exemple d'utilisation de l'un des cas de figure impliquant deux entiers <, > et = similaires à if...else en gradins. Cependant, nous utiliserons des instructions if...else imbriquées pour résoudre ce problème.
#include <stdio.h> int main() { int number1, number2; printf("Entrez deux entiers: "); scanf("%d %d", &number1, &number2); if (number1 >= number2) { if (number1 == number2) { printf("Résultat: %d = %d", number1, number2); } else { printf("Résultat: %d > %d", number1, number2); } } else { printf("Résultat: %d < %d", number1, number2); } return 0; }
Si le corps de l'instruction if...else ne contient qu'une seule instruction, il n'est pas nécessaire d'utiliser des accolades {}.
Par exemple, le code suivant
if (a > b) { print("Hello"); } print("Hi");
Équivaut à
if (a > b) print("Hello"); print("Hi");