Hola, buenas noches a todos, Me ha surgido una duda cuando estaba usando operadores logicos.
Resulta que java evalua las condiciones de una decision mientras el operador siga funcionando (o mejor dicho evaluacion en cortocircuito) he notado que al operador
AND logico (&&) le tiene efecto dicha condicion por ejemplo:
int n = 2;
if(n== 5 && ++n == 4)
el control del programa evalua la condicion n == 5 que es igual a falsa, por lo tanto la decision seria falsa al saber que uno de las 2 condiciones no es verdadera, por lo tanto la exprecion ++n de la segunda condicion, no se ejecuta.
La DUDA es cuando uso OR logico
int n = 2;
if(n== 5 || ++n == 4)
La decision termina siendo verdadera, ya que al no ser verdadera la primera condicion, se determina si la segunda condición es verdadera (la cual si es) y ++n se ejecuta, dado que la maquina virtual evalua la exprecion ++n == 4 y luego decide que es falsa.
Entonces ¿Para que usaria el operador OR logico booleano (|) si el efecto es el mismo que || ?
la cosa seria diferente si usara el operador AND logico booleano (&), A ese si le veo mas utilidad.
Gracias a todos, Buenas noches!