¿Aplica el operador Java & = & y &&?



Answers

ver 15.22.2 del JLS . Para operandos booleanos, el operador & es booleano, no bit a bit. La única diferencia entre && y para los operandos booleanos es que para && está en cortocircuito (lo que significa que el segundo operando no se evalúa si el primer operando se evalúa como falso).

Entonces en tu caso, si b es un primitivo, a = a && b , a = a & b , y a &= b todos hacen lo mismo.

Question

Asumiendo

boolean a = false;

Me preguntaba si hacer:

a &= b; 

es equivalente a

a = a && b; //logical AND, a is false hence b is not evaluated.

o por otro lado significa

a = a & b; //Bitwise AND. Both a and b are evaluated.



encontré una situación similar usando booleanos donde quería evitar llamar a b () si a ya era falso.

Esto funcionó para mí:

a &= a && b()



Related