Blog Emmanuel Orchanian

astuce bdd bureautique codage culture débat design énigme français hacking html mathématiques méthodologie santé typographie 

 

 [200 vues] 2022-04-19 Emmanuel Orchanian

NOTE : cet article a été affiché dans sa langue originale.

deux types de booléens
Booléen classique et booléen absence/présence

Parlons des couples

Les couples sont constamment utilisés en informatique, par exemple

prénom = Alex
carton vide
Un couple est comme un carton
carton prenom
On lui donne un nom, ici on écrit "prénom" sur le carton
carton prenom Alex
Puis on peux lui associer une valeur, par exemple on met "Alex" dans le carton qui s'appelle "prénom"

Le booléen classique

Un booléen est comme un carton qui ne pourrait que contenir
que deux valeurs : VRAI ou FAUX

Georges Bool
Les booléens s'appellent ainsi en l'honneur des travaux de Georges Bool

On peux aussi le comparer à d'autres types d'états opposés
Dans certains langages ils sont appelés "ouinon" ou "interrupteurs".

Interrupteurs et prises encastrés
Un booléen peux aussi être comparé à un interrupteur ON/OFF
  • vrai faux
  • oui non
  • vérité mensonge
  • positif négatif
  • + -
  • on off
  • gauche droite
  • allumé éteint
  • activé désactivé
  • 0 1
  • jour nuit 😁

Le problème du booléen classique

Supposons qu'on veuille faire la liste des permis de plusieurs personnes

  1. A-t-elle le permis auto ?
  2. A-t-elle le permis moto ?

Nous aurons alors deux booléens à paramétrer sur oui ou non

Supposons à présent qu'on veuille rajouter d'autres permis...
Il va falloir rajouter :

  1. A-t-elle le permis auto ?
  2. A-t-elle le permis moto ?
  3. A-t-elle le permis camion ?
  4. A-t-elle le permis bateau ?
  5. A-t-elle le permis remorque ?

Et c'est embêtant de devoir tout paramétrer pour ces nouvelles données...

À la place, on préfère la technique suivante :

Le booléen absence/présence

Dans ce cas, si la personne a un permis, alors on crée un couple qui associe le permis à... rien du tout.

L'astuce consistera a vérifier si le couple existe, peu importe de la valeur, le couple existe point barre. S'il n'existe pas, on considère que c'est faux.

Schéma

deux types de booléens
Booléen classique et booléen absence/présence

Exemple d'application

Les "attributs booléens" en HTML

En HTML, les attributs sont des couples sous cette forme nom="valeur". Certains attributs appelés "attributs HTML booléens" n'ont pas de valeur, soit ils existent, soit ils n'existent pas.

Par exemple, l'attribut HTML booléen selected désigne quel option est sélectionnées par défaut :


    <select>
        <option value="nord">Nord</option>
        <option value="est">Est</option>
        <option value="sud"      selected      >Sud</option>
        <option value="ouest">Ouest</option>
    </select>

Les checkbox dans les formulaires HTML

Les cases à cocher (checkbox) on un comportement de booléens absence/présence.

  • Si une case est cochée, elle envoi son name, inutile de lui attribuer une valeur, inutile aussi de vérifier sa valeur. Si vous ne mettez rien, la valeur par défaut selon les navigateurs majoritaires est "on", mais on s'en fiche on ne le vérifiera pas, puis je déconseille de le vérifier.
  • Si une case n'est pas cochée, elle n'envoie rien, comme si elle n'avait jamais été créée. 😥

Essayez par vous-même : validez et observez les comportements de l'URL





    <form action="#" method="get" class="big">
        <input type="checkbox" name="rouge" id="rouge" value="ROUGE"> <label for="rouge">Rouge</label> <br>
        <input type="checkbox" name="bleu" id="bleu" value=""> <label for="bleu">Bleu</label> <br>
        <input type="checkbox" name="orange" id="orange" > <label for="orange">Orange</label> <br>
        <button type="submit">VALIDER</button>
    </form>

Danger d'amalgame

Si vous êtes fatigué ou si vous travaillez avec vos collègues, il faut éviter de confondre ces deux types d'utilisation de booléen, car on pourrait alors mettre la valeur "oui" ou "non" dans le carton du booléen, et lors de la vérification ça fera dans les deux cas "oui"...

Personnellement je recommande de mettre un texte vide pour valeur d'un booléen absence/présence. Et je déconseille de mettre quelque chose qui sous-entend "oui" car ça embrouille.

Liens

Merci d'avoir lu !
Si en général vous avez une question, une curiosité, n'hésitez pas me contacter.