Dans ce didacticiel, vous découvrirez l'instruction if (y compris if… else et imbriquée if… else) en programmation C à l'aide d'exemples.
Instruction C if
La syntaxe de l' if
instruction en programmation C est:
if (test expression) ( // statements to be executed if the test expression is true )
Comment si la déclaration fonctionne?
L' if
instruction évalue l'expression de test à l'intérieur de la parenthèse ()
.
- Si l'expression de test est évaluée à true, les instructions à l'intérieur du corps de
if
sont exécutées. - Si l'expression de test est évaluée à false, les instructions dans le corps de
if
ne sont pas exécutées.
Pour en savoir plus sur le moment où l'expression de test est évaluée à vrai (valeur différente de zéro) et faux (0), vérifiez les opérateurs relationnels et logiques.
Exemple 1: instruction if
// Program to display a number if it is negative #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // true if number is less than 0 if (number < 0) ( printf("You entered %d.", number); ) printf("The if statement is easy."); return 0; )
Sortie 1
Entrez un entier: -2 Vous avez entré -2. L'instruction if est facile.
Lorsque l'utilisateur entre -2, l'expression de test number<0
est évaluée à vrai. Par conséquent, vous avez entré -2 s'affiche à l'écran.
Sortie 2
Entrez un entier: 5 L'instruction if est facile.
Lorsque l'utilisateur entre 5, l'expression de test number<0
est évaluée à false et l'instruction à l'intérieur du corps de if
n'est pas exécutée
C if… else Déclaration
L' if
instruction peut avoir un else
bloc facultatif . La syntaxe de l' if… else
instruction est:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Comment si la déclaration… else fonctionne?
Si l'expression de test est évaluée à vrai,
- les instructions à l'intérieur du corps de
if
sont exécutées. - les instructions à l'intérieur du corps de
else
sont ignorées de l'exécution.
Si l'expression de test est évaluée à false,
- les instructions dans le corps de
else
sont exécutées - les instructions à l'intérieur du corps de
if
sont ignorées de l'exécution.
Exemple 2: instruction if… else
// Check whether an integer is odd or even #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // True if the remainder is 0 if (number%2 == 0) ( printf("%d is an even integer.",number); ) else ( printf("%d is an odd integer.",number); ) return 0; )
Production
Entrez un entier: 7 7 est un entier impair.
Lorsque l'utilisateur entre 7, l'expression de test number%2==0
est évaluée à false. Par conséquent, l'instruction à l'intérieur du corps de else
est exécutée.
C if… else Échelle
L' if… else
instruction exécute deux codes différents selon que l'expression de test est vraie ou fausse. Parfois, un choix doit être fait parmi plus de 2 possibilités.
L'échelle if… else vous permet de vérifier entre plusieurs expressions de test et d'exécuter différentes instructions.
Syntaxe de if… else Ladder
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Exemple 3: C if… else Ladder
// Program to relate two integers using =,> or < symbol #include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); //checks if the two integers are equal. if(number1 == number2) ( printf("Result: %d = %d",number1,number2); ) //checks if number1 is greater than number2. else if (number1> number2) ( printf("Result: %d> %d", number1, number2); ) //checks if both test expressions are false else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Production
Entrez deux nombres entiers: 12 23 Résultat: 12 <23
Imbriqué si… autre
Il est possible d'inclure une if… else
instruction dans le corps d'une autre if… else
instruction.
Exemple 4: imbriqué si… autre
Ce programme donné ci-dessous relie deux entiers en utilisant l'un ou l'autre <
, >
et =
similaire à l' if… else
exemple de l' échelle. Cependant, nous utiliserons une if… else
instruction imbriquée pour résoudre ce problème.
#include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); if (number1>= number2) ( if (number1 == number2) ( printf("Result: %d = %d",number1,number2); ) else ( printf("Result: %d> %d", number1, number2); ) ) else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Si le corps d'une if… else
instruction ne contient qu'une seule instruction, vous n'avez pas besoin d'utiliser de crochets ()
.
Par exemple, ce code
if (a> b) ( print("Hello"); ) print("Hi");
est équivalent à
if (a> b) print("Hello"); print("Hi");