Mémo - 03 - Choix
Mémo - 03 - Choix
Mémo - 03 - Choix
III. Choix
III.1 Branchement Conditionnel : SI … ALORS …
La structure algorithmique « SI … ALORS … » permet un branchement conditionnel vers une action ou
un ensemble d’actions si et seulement si la condition est vraie. Cette structure permet un choix.
SI :
ALORS :
Condition ?
FIN_SI :
III.1.1 Action(s)
Une action est commandée par une instruction.
Un ensemble d’actions nécessite un ensemble d’instructions.
Une condition booléenne est usuellement la valeur résultante d’une fonction booléenne qui utilise des
opérateurs booléens et également des opérateurs arithmétiques ou des opérateurs de comparaison.
La condition suivante est vraie si la valeur de n est comprise dans l’intervalle 3 exclus et 9
inclus :
( n > 3 ) && ( n <= 9 )
La condition suivante est vraie si la valeur de n est inférieure égale à 3 ou strictement
supérieure à 9, soit comprise hors de l’intervalle 3 exclus et 9 inclus :
( n <= 3 ) || ( n > 9 )
La condition suivante est vraie si la valeur de n est non comprise dans l’intervalle 3 exclus
et 9 inclus, soit encore comprise hors de l’intervalle 3 exclus et 9 inclus :
(! ( ( n > 3 ) && ( n <= 9 ) ) )
On notera que la comparaison de caractères est réalisée à partir de la valeur entière de leur code ASCII.
Par exemple, en langage C, les conditions suivantes sont vraies :
'a' < 'b' // 97 < 98
'Z' < 'a' // 90 < 97
'0' == 48 // 48 == 48
'0' + 9 > '5' // 48 + 9 < 53
'0' * 2 < 'a' // 48 * 2 < 97
SI :
ALORS : SINON :
Condition ?
FIN_SI :
Cas_1 ?
Cas_2 ?
FIN_SELON :
III.3.2 Exemple
Pour l’exemple, le programme permet que le choix de l’utilisateur agisse sur la variable entière n telle que :
n est initialisée à 5 si le choix de l’utilisateur vaut 0,
n est incrémentée puis plafonnée à 10 si le choix de l’utilisateur vaut 1 ou 2,
n est remise à 0 pour tout autre valeur du choix de l’utilisateur.
Selon la condition (en première position), l’action 1 (en deuxième position) est réalisée si la condition est
vraie (ou true), ou alors l’action 2 (en troisième position) est réalisée si la condition est fausse (ou false).
Les valeurs produites par action1 et action2 doivent être de même type.
La ligne de code suivante affiche un 's' pour le pluriel si le nombre n de cartes est supérieur
à 1, sinon un espace est affiché (et non un élément vide pour que l’opérateur ternaire
renvoie une valeur du même type caractère) :
printf("Le joueur a %d point%c.\n", n, (n > 1) ? 's' : '');