|
|
Alternatives
Booléens Choix multiples |
|
Alternative
|
|||
|
Examinons ce court programme :
Commentaires : Dans ce programme, propose un bonbon au client qui s'est aventuré à le lancer. La procédure
"getchar()" de la librairie des programmes d'entrée sortie
clavier-console <stdio>, Si le
caractère entré est un 'O' majuscule le programme s'excuse
très hypocritement et s'arrête. Un choix
entre deux solutions s'appelle une alternative. Le schéma général d'une alternative en C est :
Nous
rappelons qu le mot anglais "if" signifie "si"
- le si conditionnel - en français.
et que le mot "else" signifie "autrement" - "dans le cas contraire". En somme l'alternative est facile à comprendre. Il se peut qu'il y ait plus d'une instruction à réaliser dans chaque cas :
|
|
Variables
booléennes
|
||
|
Ce double signe égal ( == ) n'est pas une erreur de frappe. Souvenez-vous que le signe égal simple n'a pas dans le langage C une fonction d'égalité mais d'afféctation d'une valeur à une variable comme dans x = 3 ; Le
signe " == " au contraire, évalue si les deux termes
qui sont, l'un à sa gauche, l'autre à sa droite, ont une
valeur égale. Le
contenu des parenthèses, est donc d'un type particulier appelé
booléen "boolean" en anglais et en C.
L'opérateur " == " est donc un opérateur
booléen. Les
deux variables de part et d'autre de l'opérateur " == "
doivent être du même type, quel que soit ce type. Nous
paufinons en conséquence la structure générale d'une
alternative :
On peut rencontrer des formes incomplètes du genre :
|
|
Opérateurs
booléens
|
|||||||||||||||||||||
|
Les signes doubles doivent être accolés (pas de blanc entre eux) Une "astuce" de programmation : Vous
ne verrez jamais un programmeur confirmé écrire ceci en
langage C : if(a
!= 0) ou if(a == 0) Un
entier nul est équivalent,
pour C, à un booléen de valeur false. Dès lors, l'assertion ( a != 0 ) est équivalente à ( a ) tout court.
On vérifie ? |
|
Opérateurs
combinatoires
|
||||||||||||||
|
Ce sont des opérateurs de logique combinatoire agissant sur des opérandes booléens.
Voici un petit programme d'essai.
Notez que 'X' entre apostrophes signifie "valeur numérique" ou code ASCII du caractère X.
Nous avons rencontré un programme semblable plus haut. Autre exemple : supposons que l'on veuille savoir si l'opérateur a entré un chiffre.
La
séquence ((entree
>= '0') && (entree <= '9')) est
basée sur le fait que les codes ASCII des lettres et des chiffres
sont dans le même ordre alphanumérique que les caractères
qu'ils représententt Par exemple le code de b est inférieur
de 1 au code de c. Le code de 3 est égal au code de 2 plus 1. |
|
Choix
multiples
|
|
|
La séquence
ci-dessous se limite à la partie du code correspondant à
ce choix.
Bien que le code soit évident, nous faisons ci-dessous quelques remarques : Observez
que case : 'a' et case 'A' se suivent sans l'instruction
break interposée. Une action par défaut est prévue dans le cas où l'opérateur taperait une autre touche que celles proposées. Plusieurs
instructions sucessives peuvent être rattachées à
un choix particulier : |
|
|