Les opérateurs logiques permettent de comparer des expressions booléennes et retournent des valeurs booléennes.

boolean variable = expression_1 opérateur expression_2;

boolean variable = (x >= y) && (y < z);

Les opérateurs logiques && et || (appelés parfois opérateurs de court-circuit) évaluent le premier opérande, puis si cela est nécessaire, le second.

Il est également possible d'utiliser les opérateurs logiques &, | et ^ pour effectuer des comparaisons. Dans ce cas, l'opérateur effectuera dans tous les cas l'évaluation des deux opérandes.

Les opérateurs & et | sont couramment utilisés pour obliger Java à calculer une variable présente dans l'opérande de droite.

var = (j++ < 0) && (i-- > 0);
Opérateur Usage Description Exemple
AND x&&y
L'opérateur renvoie True si les deux opérandes sont vraies; autrement, il retourne False.
(a < 10) && (b > 10) 
/*Si a et b sont inférieures à 10,
l'opérateur retourne True*/
OU x || y L'opérateur renvoie True si l'une ou l'autre des opérandes est vraie ou si toutes les deux sont fausses, sinon il retourne False.
(a >= 1) || (b == "fin") 
/*Si a est supérieur ou 
égal à 1 ou/et si b est égal
à fin alors l'opérateur renvoie
true, sinon il retourne false*/
NOT ! x L'opérateur renvoie false si son unique opérande peut être convertie en true, sinon il retourne false.
!(a <= 100) 
/*Si a est inférieur ou égal à 100
alors l'opérateur retourne false,
sinon il renvoie true*/
.
AND (évaluation) x & y L'opérateur retourne True si les deux opérandes sont égales à True, sinon il renvoie False.
(a < 10) & (b > 10) 
/*Si a et b sont inférieures à 10,
l'opérateur évalue True & True
et retourne True*/
OR (évaluation) x | y L'opérateur retourne True si les deux opérandes ou l'une des deux sont égales à True, sinon il renvoie False.
(a >= 1) | (b == "fin") 
/*Si a est supérieur ou 
égal à 1 et si b n'est pas égal
à fin alors l'opérateur évalue
True | False et retourne True*/
XOR (évaluation) x ^ y Cette opérateur OU EXCLUSIF retourne True si l'une des deux opérandes vaut True, sinon il renvoie False.
(a > 1) ^ (b != 10) 
/*Si a est supérieur à 1
et si b est différent 10
alors l'opérateur évalue True ^ True
et retourne False*/