Les jeunes connaissent les règles, mais les plus âgés connaissent les exceptions;)
Au plus tard C#, si vous avez affaire à a null-able bool, alors vous devez:
bool? x = null;
bool? y = true;
bool? z = false;
if (x == true || y == true || z == true) {
    // That was the only way that is reasonably readable that I know of
    // to accomplish this expression.
}
Si trois états n'est pas un problème, alors il ne devrait généralement pas y avoir de raison de comparer quelque chose à true/ True. Cependant, dans Pythonplusieurs langues telles que celle que C/C++vous utilisez, vous pouvez ifutiliser une expression non booléenne. Ces langues ont des règles uniques pour interpréter les entiers, les pointeurs, les listes, etc. comme étant vrais ou faux. Parfois, vous ne voulez pas cela. Par exemple, dans cet extrait de code Python:
x = True
y = 'abcdef'
z1 = x and y
z2 = (x == True) and (y == True)
Ici zdevrait être True, mais z2devrait être False. Maintenant, un Clojurelangage aborde cela d’une autre manière encore - la andfonction n’évalue pas nécessairement en un bool, mais ifpeut le gérer.
Indépendamment de la langue, chaque fois que vous comparez quelque chose à Trueou False, il vaut probablement la peine de commenter.
               
              
if (some_flag == true)mais les implicitesif (is_something)ouif (has_something). Notez les noms de variables.