Les booléens et la logique
Un booléen est la plus petite information qui existe : vrai ou faux. Rien d'autre. Et pourtant, toutes les décisions d'un programme reposent dessus.
Une condition est une valeur
Quand tu écris age >= 18, CoddyRun calcule une réponse : vrai ou faux. Cette réponse peut être affichée, ou rangée dans une variable de type booléen :
age est un nombre vaut 15
estMajeur est un booléen
estMajeur vaut age >= 18
affiche estMajeur // faux
affiche age < 18 // vrai
Une fois la réponse rangée, on l'utilise directement dans un si :
age est un nombre vaut 15
estMajeur est un booléen vaut age >= 18
si estMajeur alors
affiche 'Tu peux voter.'
sinon
affiche 'Encore un peu de patience.'
fin si
On écrit si estMajeur alors, et non si estMajeur = vrai alors : la variable contient déjà la réponse. Donne à tes booléens un nom qui se lit comme une question : estMajeur, aGagne, partieFinie.
et, ou, non
Trois opérateurs combinent les booléens :
A et B est vrai seulement si les deux sont vrais ;A ou B est vrai si au moins un des deux est vrai ;non A inverse : vrai devient faux, et faux devient vrai.
aSonBillet est un booléen vaut vrai
aSonMasque est un booléen vaut faux
affiche aSonBillet et aSonMasque // faux
affiche aSonBillet ou aSonMasque // vrai
affiche non aSonMasque // vrai
Question : pluie vaut vrai et parapluie vaut faux. Que donne pluie et non parapluie ? — vrai. non parapluie vaut vrai ; pluie et vrai vaut vrai : il pleut et on n'a pas de parapluie.
L'ordre des opérations
Comme la multiplication passe avant l'addition, non passe avant et, qui passe avant ou. En cas de doute, mets des parenthèses : elles rendent la condition plus lisible.
age est un nombre vaut 10
accompagne est un booléen vaut vrai
aUnBillet est un booléen vaut vrai
// entrée autorisée : un billet, et soit 12 ans, soit un accompagnateur
si aUnBillet et (age >= 12 ou accompagne) alors
affiche 'Entrée autorisée.'
sinon
affiche 'Entrée refusée.'
fin si
Sans les parenthèses, la condition se lirait (aUnBillet et age >= 12) ou accompagne : un enfant accompagné entrerait même sans billet !
Le contraire d'une condition
Pour inverser une condition, on peut utiliser non, ou écrire directement le test contraire :
- le contraire de
x > 10 est x <= 10 ; - le contraire de
x = 5 est x <> 5 ; - le contraire de
A et B est non A ou non B ; - le contraire de
A ou B est non A et non B.
Les deux dernières règles s'appellent les lois de De Morgan. Exemple : « ne pas avoir (un billet et un passeport) », c'est « ne pas avoir de billet, ou ne pas avoir de passeport ».
note est un nombre vaut 14
// ces deux tests disent exactement la même chose
affiche non (note >= 10 et note <= 20)
affiche note < 10 ou note > 20
Les deux lignes affichent faux.
Un drapeau dans une boucle
Un booléen sert souvent à décider quand une boucle s'arrête :
trouve est un booléen vaut faux
essais est un nombre vaut 0
tant que non trouve
essais ajoute 1
si hasard(1, 6) = 6 alors
trouve vaut vrai
fin si
fin tant que
affiche 'Un 6 après ' + essais + ' lancers.'
En résumé
- Un booléen vaut
vrai ou faux ; une comparaison produit un booléen. - On peut ranger une condition dans une variable, puis écrire
si maVariable alors. et : les deux ; ou : au moins un ; non : le contraire.- Les parenthèses évitent les surprises quand on mélange
et et ou.