Title: Les commentaires en C
1Les instructions conditionnelles du C
par Frédérick Henri
2Objectifs des instructions conditionnelles
Choisir linstruction à exécuter ou à ne pas
exécuter en fonction de lévaluation dune
expression.
3Syntaxe du if
if (ltexpressiongt) / Ces instructions sont
exécutées uniquement si lexpression est
vraie./ instructions
4Exemple
include ltstdio.hgt include ltstdlib.hgt int
main(void) int age / Pour lire lage.
/ printf( Veuillez entrer votre age
) scanf( i , age) if (age lt
18) printf( Pas dalcool pour toi!
) return EXIT_SUCCESS
5Rappel
En C, une expression est fausse si son évaluation
vaut 0. Sinon, elle est considérée comme étant
vraie.
6Syntaxe du ifelse
if (ltexpressiongt) / Ces instructions sont
exécutées uniquement si lexpression est
vraie./ instructions else / Ces
instructions sont exécutées uniquement si
lexpression est fausse./ instructions
7Exemple
include ltstdio.hgt include ltstdlib.hgt int
main(void) int age / Pour lire lage.
/ printf( Veuillez entrer votre age
) scanf( i , age) if (age lt
18) printf( Tu es mineur.
) else printf( Tu es majeur.
) return EXIT_SUCCESS
8Exemple de problème
Une société de transport quelconque offre deux
types de rabais
- Moitié prix pour les moins de 18 ans,
- Gratuit pour les 65 ans et plus.
Si on possède le coût dun titre de transport et
lâge de la personne qui voyage, comment peut-on
déterminer le coût final du titre ?
9Solution indentation lourde
/ Supposez que les variables valeur_titre et
age contiennent déjà des données. / double
cout_final if (age lt 18) cout_final
valeur_titre / 2.0 else if (age gt
65) cout_final 0.0 else
cout_final valeur_titre
10Solution meilleure indentation
/ Supposez que les variables valeur_titre et
age contiennent déjà des données. / double
cout_final if (age lt 18) cout_final
valeur_titre / 2.0 else if (age gt
65) cout_final 0.0 else cout_final
valeur_titre
11Petite question
Les deux bouts de code suivants sont-ils
équivalents ?
12Réponse
Voici un contre-exemple démontrant que ce nest
pas identique Vous devez acheter du lait pour
faire un gâteau. La recette indique dutiliser du
3.25. Vous vous dites que sil ny a pas de
3.25, vous prendrez du 2 et quau pire, sil
ny a ni 3.25, ni 2, vous prendrez du 1.
13Réponse
On obtient alors les deux bouts de code suivants
14Réponse
Supposons quil y avait du 3.25, du 2 et du 1,
alors
Dans ce cas, on achètera uniquement du 3.25.
15Réponse
Supposons quil y avait du 3.25, du 2 et du 1,
alors
Dans ce cas, on achètera du 3.25, du 2 et du 1
!
16Sachez que
Un else fait toujours référence au dernier if le
précédant dans la même instruction composée.
else total 1
17if (1) printf( FIN )
Merci à Service des Enseignements
Généraux Pierre Bélisle Hugues Saulnier Wolfgang
Amadeus Mozart