PRATIQUE ALGO/METHODES 
Rendre les expressions booléennes plus lisibles
 
La méthode : adapter les théories des circuits électriques aux tests booléens afin d'en simplifier l'apparence. (07/11/2005)

 

  Forum

Réagissez dans les forums de JDN Développeurs

Les tests booléens, comme ceux qui utilisent un bloc if-else, sont parmi les plus utilisés dans les codes sources : un programme n'a de cesse de tester si une valeur est vraie ou fausse, et d'agir en conséquence.

Il peut cependant arriver que les tests booléens se combinent, aboutissant au même résultat que lors d'un dialogue réel : à force de combiner des expressions négatives et positives entre elles, il peut arriver que le développeur ne sache plus reconnaître les unes des autres.

Une idée provenant des théories électriques est de sortir le négatif d'un test, pour aboutir des expressions logiquement équivalentes, mais dans la plupart des cas plus lisibles.

Par exemple, le test suivant :

if ( !jaiFaim || !jaiSoif ) { action }

peut être simplifié en...

if ( !( jaiFaim && jaiSoif ) ) { action }

Les théorèmes de DeMorgan présente ainsi plusieurs équivalences, qui peuvent aider un développeur à se se dépêtrer d'expressions trop compliquées ...


Transformation d'expressions logiques
Originale
Transformation
non A et non B
non (A ou B)
non A et B
non (A ou non B)
A et non B
non (non A ou B)
A et B
non (non A ou non B)
non A ou non B
non (A et B)
non A ou B
non (A et non B)
A ou non B
non (non A et B)
A ou B
non (non A et non B)
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page