Cours 5.1. Branchement conditionnel (if...else)

L'instruction if...else permet d'éxécuter un bloc d'instructions selon le résultat d'un test :

S'il fait beau je vais courir, sinon je travaille mon cours de C.

Organigramme de l'instruction if...else

Syntaxe

Voici la syntaxe de l'instruction if...else :

if (test) {
  ...
  // Bloc d'instruction 1
}
else {
  ...
  // Bloc d'instruction 2
}

Le premier bloc d'instructions ne s'exécutera que si le test est vrai.

Il est à noter que :

Exemple 1

Cet exemple affiche deux messages différents selon que A est plus grand que B ou non :

if (A>B) {
  printf ("A est plus grand que B\n");
}
else {
  printf ("A est plus petit ou égale à B\n");
}

Exemple 2

Dans l'exemple précédent, on peut constater que chaque bloc d'instructions ne comporte qu'une seule instruction. On peut alléger le code en omettant les accolades :

if (A>B) 
  printf ("A est plus grand que B\n");
else     
  printf ("A est plus petit ou égale à B\n");

Exemple 3

Cet exemple illustre le caractère optionnel du else {} :

// Compare A et B
if (A>B) printf ("A est plus grand que B\n");
if (A<B) printf ("A est plus petit que B\n");
if (A==B) printf ("A égale B\n");
L'opérateur de comparaison est le double égal ==. Ne le confondez pas avec l'opérateur d'affectation =.

Exercice 1

Écrire un programme qui demande à l'utilisateur de saisir sa moyenne générale.

Entrez votre moyenne générale : 10.0
Bravo ! vous avez votre diplôme.

Exercice 2

Écrire un programme qui demande à l'utilisateur de saisir un chiffre. Le programme affiche ensuite le chiffre en toutes lettres. Nous supposerons que l'utilisateur saisit un chiffre valide (il n'est pas nécessaire de procéder à une vérification de la saisie) :

Entrez un chiffre : 4
4 s'écrit quatre

Exercice 3

Écrire un programme qui demande à l'utilisateur de saisir deux entiers (x1 et x2). Si x1 n'est pas plus petit que x2, le contenu des variables est permuté. Au moment de l'affichage, x1 doit toujours être plus petit que x2 :

Entrez un premier entier : 5
Entrez un deuxième entier : 3
x1=3    x2=5
Entrez un premier entier : 3
Entrez un deuxième entier : 5
x1=3    x2=5

Quiz

Qu'affiche le code suivant ?

if (4<2)
  printf ("Crac");
else
  printf ("Boum");
Vérifier Bravo ! Le test est faux, on exécute le code dans le else. Essaie encore ...

Quand peut-on omettre les accolades ?

Vérifier Bravo ! S'il n'y a qu'une instruction dans le bloc, les accolades peuvent être omises. Essaie encore ...

Qu'affiche le code suivant ?

if (0)
  printf ("Crac");
  printf ("Boum");
Vérifier Bravo ! Il n'y a pas d'accolades, donc il n'y a qu'une instruction dans le if. Ce type de présentation est à éviter. Essaie encore ...

Qu'affiche le code suivant ?

if (0)
  printf ("Crac"); printf ("Boum");
Vérifier Bravo ! Il n'y a pas d'accolades, donc il n'y a qu'une instruction dans le if. Ce type de présentation est à éviter. Essaie encore ...

Qu'affiche le code suivant ?

if (0);
  printf ("Crac"); 
printf ("Boum");
Vérifier Bravo ! Il ne faut pas mettre de point-virgule à la fin du if ! Essaie encore ...

Quand les parenthèses du test peuvent-elles être omises ?

Vérifier Bravo ! Les parenthèses autour du test sont obligatoires. Essaie encore ...

Voir aussi


Dernière mise à jour : 26/09/2021