langace C Structure de contrôle if...else
Instruction if en C
La syntaxe de l'instruction if en programmation C est la suivante :
if (expression de test)
{
// code
}
Comment fonctionne l'instruction if ?
L'instruction if évalue l'expression de test entre les parenthèses ().
Si l'expression de test est évaluée à vrai, les instructions à l'intérieur du bloc if sont exécutées.
Si l'expression de test est évaluée à faux, les instructions à l'intérieur du bloc if ne sont pas exécutées.
Comment fonctionne l'instruction if en programmation C ?
Fonctionnement de l'instruction if
Pour en savoir plus sur quand l'expression de test est évaluée à vrai (valeur non nulle) et faux (0), consultez les opérateurs relationnels et logiques.
Exemple 1 : Instruction if
// Programme pour afficher un nombre s'il est négatif
#include <stdio.h>
int main() {
int nombre;
printf("Entrez un entier : ");
scanf("%d", &nombre);
// vrai si le nombre est inférieur à 0
if (nombre < 0) {
printf("Vous avez entré %d.\n", nombre);
}
printf("L'instruction if est simple.");
return 0;
}
Résultat :
Entrez un entier : -2
Vous avez entré -2.
L'instruction if est simple.
Lorsque l'utilisateur entre -2, l'expression de test nombre<0 est évaluée à vrai. Par conséquent, "Vous avez entré -2" est affiché à l'écran.
Entrez un entier : 5
L'instruction if est simple.
Lorsque l'utilisateur entre 5, l'expression de test nombre<0 est évaluée à faux et l'instruction à l'intérieur du bloc if n'est pas exécutée.
Instruction if...else en C
L'instruction if peut avoir un bloc else optionnel. La syntaxe de l'instruction if...else est la suivante :
if (expression de test) {
// exécuter du code si l'expression de test est vraie
}
else {
// exécuter du code si l'expression de test est fausse
}
Comment fonctionne l'instruction if...else ?
Si l'expression de test est évaluée à vrai :
Les instructions à l'intérieur du bloc if sont exécutées.
Les instructions à l'intérieur du bloc else sont ignorées.
Si l'expression de test est évaluée à faux :
Les instructions à l'intérieur du bloc else sont exécutées.
Les instructions à l'intérieur du bloc if sont ignorées.
Exemple 2 : Instruction if...else
// Vérifiez si un entier est impair ou pair
#include <stdio.h>
int main() {
int nombre;
printf("Entrez un entier : ");
scanf("%d", &nombre);
// Vrai si le reste est égal à 0
if (nombre%2 == 0) {
printf("%d est un entier pair.",nombre);
}
else {
printf("%d est un entier impair.",nombre);
}
return 0;
}
Résultat :
Entrez un entier : 7
7 est un entier impair.
Lorsque l'utilisateur entre 7, l'expression de test nombre%2==0 est évaluée à faux. Par conséquent, l'instruction à l'intérieur du bloc else est exécutée.
Échelle if...else en C
L'instruction if...else exécute deux codes différents en fonction de savoir si 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 l'échelle if...else
if (expression de test1) {
// instructions
}
else if(expression de test2) {
// instructions
}
else if (expression de test3) {
// instructions
}
.
.
else {
// instructions
}
Exemple 3 : Échelle if...else en C
// Programme pour relier deux entiers à l'aide des symboles =, > ou <
#include <stdio.h>
int main() {
int nombre1, nombre2;
printf("Entrez deux entiers : ");
scanf("%d %d", &nombre1, &nombre2);
// vérifie si les deux entiers sont égaux.
if(nombre1 == nombre2) {
printf("Résultat : %d = %d",nombre1,nombre2);
}
// vérifie si nombre1 est supérieur à nombre2.
else if (nombre1 > nombre2) {
printf("Résultat : %d > %d", nombre1, nombre2);
}
// vérifie si les deux expressions de test sont fausses
else {
printf("Résultat : %d < %d",nombre1, nombre2);
}
return 0;
}
Résultat :
Entrez deux entiers : 12 23
Résultat : 12 < 23
if...else imbriqué
Il est possible d'inclure une instruction if...else à l'intérieur du corps d'une autre instruction if...else.
Exemple 4 : if...else imbriqué
Le programme ci-dessous relie deux entiers en utilisant <, > et =, similairement à l'exemple de l'échelle if...else. Cependant, nous utiliserons une instruction if...else imbriquée pour résoudre ce problème.
#include <stdio.h>
int main() {
int nombre1, nombre2;
printf("Entrez deux entiers : ");
scanf("%d %d", &nombre1, &nombre2);
if (nombre1 >= nombre2) {
if (nombre1 == nombre2) {
printf("Résultat : %d = %d",nombre1,nombre2);
}
else {
printf("Résultat : %d > %d", nombre1, nombre2);
}
}
else {
printf("Résultat : %d < %d",nombre1, nombre2);
}
return 0;
}