Vous êtes sur la page 1sur 14

Atelier de Programmation C

Les instructions conditionnelles

ISIG Kairouan

2013/ 2021
2020/
2014
Les instructions conditionnelles (tests)

 Permettent d’exécuter un bloc d’instructions ou


un autre suivant le résultat d’un test

 Appelées aussi branchements conditionnels

 Dans le langage C, deux instructions de ce


type existent :
 l’instruction if else
 l’instruction switch

2
L’instruction if else Expression logique (booléenne)
simple ou combinée.
Exemples: (A<B), (M>10.0), (Delta <=0),
((Age > 18) && (Moy>= 14.0))

If (condition)
instruction1; Traitement à effectuer si l’expression est vraie
(toute valeur != 0). À la fin du traitement, il y
[ else a saut après la partie else.
insctruction2;
] Traitement à effectuer si l’expression est fausse
(valeur = 0).

-La clause else peut être


omise
-Il ne faut pas mettre « ; » à la
fin des lignes if et else
3
L’instruction if else


Exemple
If (x>=0)
printf(“x est positif \n“);
else
printf(“x est négatif \n“);

4
L’instruction if else

 Plus d’une instruction dans le résultat d’une


instruction  les accolades sont nécessaires.
If (condition)
{ instruction1;
instruction2;

instruction n;
}
[ else
{
instruction1
;
instruction2
;

instruction n;
5
}
L’instruction if else (If imbriqués)

 La mise des accolades est


importante
if (temperature>0)
{
if(temperature<100)
printf("Etat
liquide"); else
printf("Etat
gazeux");
}
else
printf("Etat solide"); 6
L’instruction if else (If imbriqués)
! Pour une valeur comprise
if (age>=16) entre
16 et 65, il affiche « Vous êtes
if(age>=65 trop jeune pour travailler»
)printf("Vous ne pouvez plus travailler") ;
else
printf("Vous êtes trop jeune pour
travailler\n") ;

if (age>=16)
{ if(age>=65)
printf("Vous ne pouvez plus travailler") ;
}
else
printf("Vous êtes trop jeune pour travailler\n") ;
7
L’opérateur conditionnel

 Effectue un traitement similaire au if else


 Permet de retourner une valeur
 Syntaxe
(test) ? (valeur de retour si test est vrai) : (valeur de retour si test est faux)
 Exemple

if(x>=0)
abs = x;
else abs = (x>=0)? x : 0-x ;
abs = 0-x;

8
Exemple
Écrire un programme qui permet d’afficher le maximum de deux
entiers donnés.

Première méthode :
#include <stdio.h>
int main()
{
int a, b, max;
printf ("\n Donnez a : "); scanf ("%d", &a);
printf ("\n Donnez b : "); scanf ("%d", &b);
if (b > a) max = b;
else max = a;
printf ("Le maximum est : %d.", max);
return 0;
}

9
Exemple (suite)

Deuxième méthode :
#include <stdio.h>
int main()
{
int a, b, max;
printf ("\n Donnez a : "); scanf ("%d", &a);
printf ("\n Donnez b : "); scanf ("%d", &b);
max = a;
if (b > a) max = b; if sans else
printf ("Le maximum est : %d.", max);
return 0;
}

10
L’instruction switch

 Structure conditionnelle « multichoix»


 Utilisée quand plus que deux choix sont
possibles
switch (selecteur)
selecteur: est une variable scalaire
{
 Peut être un entier ou
case constante1:
un caractère mais pas un
instruction
réel.
1;
instruction 2;
break;
case constante2: case: doit être suivi d’une
instruction valeur scalaire du même type
3; break; que le selecteur
default:
instruction 4;
} 11
L’instruction switch

1. Les parenthèses qui suivent le mot clé switch indiquent une


expression dont la valeur est testée successivement par chacun
des case.
2. Lorsque l'expression testée est égale à une des valeurs suivant
un
case, la liste d'instructions qui suit celui-ci est exécutée.
3. L’un seulement des traitements sera effectué.
4. L’oubli de break; n’est pas considérée comme une erreur, break
indique la sortie de la structure conditionnelle.
5. Lorsque l'on omet le break, l'exécution continue dans les blocs
suivants
6. Le mot clé default précède la liste d'instructions qui sera exécutée si
l'expression n'est jamais égale à une des valeurs.
7. En présence d’une instruction unique, les accolades peuvent
 être omises
12
L’instruction switch


Exemple
switch(choix)
{
case 1 :
printf("Choix 1
enregistré\n") ; break ;
case 2:
printf("Choix 2 enregistré\n");
break;
default:
pri
ntf("A
utre
choix\ 13
L’instruction switch
 Exemple avec plusieurs cas exécutent les mêmes
instructions
int mois;

switch(mois)
{
case 1 :case 3 :case 5 :case 7 :case 8 :case 10 :case 12 :
printf("Le mois %d contient 31 jours\n", mois);
break;
case 4 :case 6 :case 9 : case 11:
printf("Le mois %d contient 30 jours\n", mois);
break;
default :
printf ("Le mois 2 contient 28 ou 29 jours\n");
}
14

Vous aimerez peut-être aussi