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

else if

na aula foi demonstrado um if dentro de else, exemplo:

if (.......) {

} else {
    if  ( ....) {

    } else {
}

}

minha duvida é só sobre a posição do if, seria uma questão de ver melhor apenas, ele dentro do else? Pois sempre tinha visto "else if (......) { }"

ou se tem alguma outra vantagem?

6 respostas

Eu diria que é uma questão de deixar organizado.

solução!

Boa tarde Leo, tudo bom?

Então são coisas diferentes, um exemplo bem simples seria:


if ( a == null && b == null ) {
    System.out.println("Dados estão nulos");

} else {
    if ( a == null ) {
    System.out.println("Dado A está nulo");
    } else if ( b == null) 
    System.out.println("Dado B está nulo");
    } else {
    System.out.println("Dados estão preenchidos com sucesso");
    }
}

Nesse nosso caso o nosso else indica uma opção contraria do primeiro if, ou seja, caso algum dos dados( A ou B) esteja preenchido, ele entra no else, o else if indica uma nova condição.

Entendi, achei que era mais "estética"... Obrigado pela explicação!!!

Esse código tem o mesmo resultado do exemplo do Gabriel:

if ( a == null && b == null ) {
    System.out.println("Dados estão nulos");
} else if ( a == null ) {
    System.out.println("Dado A está nulo");
    } else if ( b == null) 
    System.out.println("Dado B está nulo");
    } else {
    System.out.println("Dados estão preenchidos com sucesso");}

Então parece ser mesmo questão visual.

Então nesse caso sim Edson, mas assim, podem ocorrer casos de que você precisa de uma condição para cair em outras, por exemplo: Imagina que temos dois caminhos o da direita e o da esquerda(D e E), caso eu escolha o D eu só tenho uma reta, ao escolher o E eu tenho três caminhos para escolher A , B e C onde eu posso escolher para qual ir, em código ficaria assim:

 if (primeiraEscolha == 'D') {
        System.out,Println("Vai reto");
    }  else  { //ou seja  primeiraEscolha igual a E
        if ( segundaEscolha == 'A') {
            System.out,Println("Primeira escolha E, segunda escolha A");
        }  else if (segundaEscolha == 'B') {
            System.out,Println("Primeira escolha E, segunda escolha B");
        } else{
            System.out,Println("Primeira escolha E, segunda escolha C");
        }
    } 

Espero que tenha feito sentido, se ainda ficar com duvida, pode mandar

Novamente, seu exemplo de outra forma:

if (primeiraEscolha == 'D') {
            System.out.println("Vai reto");
        } else if (segundaEscolha == 'A') {
            System.out.println("Primeira escolha E, segunda escolha A");
        } else if (segundaEscolha == 'B') {
            System.out.println("Primeira escolha E, segunda escolha B");
        } else {
            System.out.println("Primeira escolha E, segunda escolha C");
        }