Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Básica dúvida sobre operadores lógicos em java

Por que o código abaixo retorna verdadeiro?

class Main {
  public static void main(String[] args) {
    System.out.println(true && false && false || true);
  }
}

Segundo a documentação : "The conditional-and operator && is like & (§15.22.2), but evaluates its right-hand operand only if the value of its left-hand operand is true."

Então, nessa condição, no segundo false, a expressão já não era para ser parada e retornar false?

4 respostas
solução!

Olá Ian Pedro , o motivo do resultado acima ser "true " é devido essa instrução (proposição) seguir a mesma ordem de precedência dos conectivos utilizada na logica proposicional , onde é executado inicialmente os comando and(&&) e por ultimo o our(||) ,logo independente do resultado dos ands caso compare um false || true sempre o resultado vai ser true . Espero ter ajudado .

Então no caso de haver um || a proposição segue até o final mesmo que um && retorne false?

Sim , exatamente . Agora se no final estive-se por exemplo : System.out.println(true &&true && false || false); o resultado seria false.pois a ultima comparação seria entre falso ou falso = falso!

Boa galera!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software