Desafio Booleano!

4 respostas
J

E ae pessoal… Ai vai um desafio… básico, não vale compilar e nem executar… hehehhehehe
Coloquei uma trava contra cópia…Zuera… Vamos lá:

public class Desafio {
   
  public void metodo() {
    if (retornaPrimeiraCondicao() || retornaSegundaCondicao());
  }
  
  public boolean retornaPrimeiraCondicao() {
    System.out.println("Imprimiu a primeira condição.");
    return true;
  }
  
  public boolean retornaSegundaCondicao() {
    System.out.println("Imprimiu a segunda condição.");
    return true;
  }
  
  public static void main (String[] args) {
    new Desafio().metodo();
  }
  
}

Irá ocorrer algum erro (compilaçao ou execução) ou terá alguma saída?
Exemplicar pq.
:idea:

4 Respostas

M

só vai imprimir a primeira condição, pq o operador “||” só avalia a primeira expressão, digo… se a primeira expressão em um OU for verdadeira… logo, ja será true, independente da segunda ser falsa ou true… o mesmo fale pro “&&”, se a primeira expressão for false, ele nem avalia a segunda, ja retorna false… se quiser q ele avalie as duas independente da primeira, tem q usar “|” e “&” :smiley:

A

Estou achando engraçado o if só verificar as duas condições, mas não haver nenhuma ação em função dessa verificação… Sem compilar… acho que então daria erro.

F

como o matheus falou o operador || aceita curto circuito, ou seja, o programa verificará, via lógica formal, a possibilidade de descartar as condições desnecessárias. No caso de um OU, não interessa quantas condições existam, se pelo menos uma forma TRUE não mais é necessário verificar ou executar o restante. Nesse caso, o corpo do if (q não tem nada) será executado via primeira condição e a segunda será descartada: SAIDA = Imprimiu a primeira condição

F

“ADEMILTON”:
Estou achando engraçado o if só verificar as duas condições, mas não haver nenhuma ação em função dessa verificação… Sem compilar… acho que então daria erro.
8O

Criado 25 de maio de 2004
Ultima resposta 25 de mai. de 2004
Respostas 4
Participantes 4