Java fournit deux opérateurs booléens intéressants que l'on ne trouve pas dans la plupart des autres langages informatiques. Ces versions secondaires de AND et OR sont appelées opérateurs logiques de court-circuit . Comme vous pouvez le voir dans le tableau précédent, l'opérateur OR donne la valeur true lorsque A est vrai, quel que soit B.
De même, l'opérateur AND aboutit à false lorsque A est false, quel que soit B. Si vous utilisez les ||
et &&
formes, plutôt que les |
et les &
formes de ces opérateurs, Java ne dérangera pas d'évaluer la droite opérande seul. Ceci est très utile lorsque l'opérande de droite dépend du fait que l'opérande de gauche est vrai ou faux pour fonctionner correctement.
Par exemple, le fragment de code suivant montre comment vous pouvez tirer parti de l'évaluation logique de court-circuit pour être sûr qu'une opération de division sera valide avant de l'évaluer:
if ( denom != 0 && num / denom >10)
Comme la forme de court-circuit de AND ( &&
) est utilisée, il n'y a aucun risque de provoquer une exception d'exécution en divisant par zéro. Si cette ligne de code était écrite en utilisant la &
version unique de AND, les deux côtés devraient être évalués, provoquant une exception d'exécution lorsque denom
vaut zéro.
Il est de pratique courante d'utiliser les formes de court-circuit de AND et OR dans les cas impliquant la logique booléenne, laissant les versions à un seul caractère exclusivement pour les opérations au niveau du bit. Cependant, il existe des exceptions à cette règle. Par exemple, considérez l'instruction suivante:
if ( c==1 & e++ < 100 ) d = 100;
Ici, l'utilisation d'un seul &
garantit que l'opération d'incrémentation sera appliquée selon e
qu'elle c
est égale à 1 ou non.