Vous êtes sur la page 1sur 14

Module: Programmation I

Filière: SMA-S3

Traitement Conditionnel
Pr. Issam QAFFOU
Laboratoire Ingénierie des Systèmes d’Information
Département d’Informatique
FSSM-UCA

Version 2015/2016
(Automne)
Traitement conditionnel
• Les opérateurs logiques
• If … else …
• Les conditions multiples
• La structure Switch
• La condition ternaire
Les opérateurs logiques
• « == » : permet de tester l'égalité.
• « != » : permet de tester l’inégalité.
• « < » : strictement inférieur.
• « <= » : inférieur ou égal.
• « > » : strictement supérieur.
• « >= » : supérieur ou égal.
• « && » : l'opérateur ET. Il permet de préciser une
condition
• « || » : le OU. Même philosophie que le ET
• « ? : » : l'opérateur ternaire.
Syntaxe en algorithmique
• Cas 1: Condition simple avec une seule instruction en résultat
Si (expression logique) alors instruction;
• Cas 2: Condition simple avec bloc d’instructions
Si (expression logique) alors
Début
Bloc d’instructions;
Fin;
• Condition avec alternative (si … sinon …)
Si (expression logique) alors
début
Bloc d’instructions;
fin;
Sinon
début
bloc d’instructions;
fin;
Syntaxe en langage C
• De la même manière on procède en langage C
• Cas 1: Condition simple avec une seule instruction en résultat
if (expression_logique) instruction;
• Cas 2: Condition simple avec bloc d’instructions
if (expression_logique)
{
Bloc d’instructions;
}
• Condition avec alternative (if … else …)
if (expression_logique)
{
Bloc d’instructions;
}
else
{
bloc d’instructions;
}
Syntaxe en langage C
• Exemple:
Algorithmique: Langage C:
Si(Note>=10) écrire ("Réussite"); if (Note>=10) printf("Réussite");
Sinon écrire("Echec"); else printf("Echec");

Algorithmique:
Algorithmique:
Si (Note<10) écrire("Echec");
if (Note<10) printf("Echec");
Sinon si(Note<12) écrire
else if(Note<12) printf("Passable");
("Passable");
else if(Note<14) printf("A.Bien");
Sinon si(Note<14) écrire ("A.Bien");




Conditions multiples
• On peut avoir plusieurs expressions logiques
dans un seul if.
• Exemple: tester si une note appartient à
l’intervalle [0,20].
if (Note>20 && Note <0) printf("Note invalide");
If (id_pers==13 || id_pers==16) printf("Accès possible");

• Les conditions imbriquées sont aussi valables


avec des expressions logiques multiples
Choix multiple
• Dans le cas où on possède plusieurs if … else…, il devient lourd de
les écrire dans un programme. On utilise alors une technique
pour exprimer le choix multiple en utilisant le mot-clé switch.
• Exemple: Dans un menu de restaurant on possède plusieurs choix
numérotés comme suit:

Menu
*******************************************
1- Poulet
2- Tagine
3- Friture Poisson
4- Couscous

Faites un choix en tapant le numéro correspondant:


Choix multiple
• Exemple (suite)
– Avec des if … else …


if(choix=1) printf("Poulet");
else if (choix=2) printf("Tagine");
else if (choix=3) printf("Friture");
else if (choix=4) printf("Couscous");
else printf("On n'a pas ce choix");

Choix multiple
• Exemple (suite)
On peut procéder en
utilisant switch
Choix multiple
Variable sur laquelle les
• Syntaxe tests sont effectués

Les valeurs possibles de


switch (/*Variable*/) la variable dans des
{ expressions logiques

case /*Argument*/: Traitement à effectuer


/*Action*/; correspondant à
l’argument pris
break;
default: Pour sortir en cas de
non besoin de vérifier
/*Action*/; les autres arguments
}
Conditions ternaires
• Ces conditions se caractérisent par le fait que trois opérandes
(c'est-à-dire des variables ou des constantes) sont mis en jeu.
• Elles peuvent être employées pour affecter des données à une
variable.
• On utilise un point d’interrogation (?) pour vérifier si la
condition est vrai ou fausse.
• Exemple:
int x = 12, y = 64;
int max = (x < y) ? y : x ; //Maintenant, max vaut 64
Conditions ternaires
• Qu’est ce qui se passe dans:
int max = (x < y) ? y : x ;
• Nous cherchons à affecter une valeur à notre
variable max, mais de l'autre côté de l'opérateur
d'affectation se trouve une condition ternaire…
• Ce qui se trouve entre les parenthèses est évalué : x est-
il plus petit que y ? Nous avons donc, deux cas
possibles :
– si la condition est vérifiée, la valeur qui se trouve juste après
le ? sera affectée ;
– sinon, la valeur se trouvant après le symbole: sera affectée.
Conditions ternaires
• On peut insérer une condition ternaire dans une autre
condition ternaire :
int x = 10, y = 20;
int max = (x < y) ? (y < 10) ? y % 10 : y * 2 : x ;
//Max vaut 40

• Pour lire cette condition simplement, on ajoute des


parenthèses:
Int max = (x < y) ? ((y < 10) ? y % 10 : y * 2) : x ;
//Max vaut 40

Vous aimerez peut-être aussi