2
respostas

Diferença no uso de ifs e ifs e else

Quando usar somente vários ifs e quando usar if e else if?

2 respostas

O ideal é nunca usar muitos ifs, else ifs, pois geral Complexidade Ciclomática, o " else if " nada mais é que um if dentro de um else. O ideal é sempre que possível utilizar conectivos como :

" || " = Que significa " ou " " && " = Que significa " e "

Que iram encurtar o seu código e deixar ele mais " Bonito "

public class Maioridade {
    public static void main(String[] args) {
        int idade = 21 ;
        int quantidadePessoas = 2 ;
        if (idade >= 18 ) {
            System.out.println(" Voce pode entrar ");
        }else {
            if ( quantidadePessoas >= 2) {
                System.out.println(" Voce pode entrar , acompanhado");
            }else {
                System.out.println(" Voce nao pode entrar");
            }
        }
    }
}

Esse código usa um " else if " que poderia facilmente ser excluído com a implementação do conectivo " || " no if.

public class MaioridadeV2 {
    public static void main(String[] args) {
        int idade = 21 ;
        int quantidadePessoas = 2 ;
        if ( idade >= 18 || quantidadePessoas >= 2 ) {
            System.out.println(" Voce pode entrar");
        }else {
            System.out.println(" Voce nao pode entrar ");
        }
    }
}

Então o if poderá verificar o seguinte : Se ele for maior de 18 OU a quantidade de pessoas for maior que duas, ele pode entrar.

Espero ter ajudado !!

De fato o uso de operadores lógicos vai ajudar bastante, principalmente com relação à leitura do código. Para testes condicionais mais simples, vale a pena conhecer também o comando "switch case":

...
if(mes == 1 ){
    System.out.println("Janeiro");
}else if( mes == 2){
    System.out.println("Fevereiro");
...código  omitido...
}else if(mes == 12){
    System.out.println("Dezembro");
}else{
    System.out.println("Mês inválido");
}

...

O código acima poderia ser substituído por:

...

switch(mes){
    case 1: 
          System.out.println("Janeiro");
          break;

    case 2: 
          System.out.println("Fevereiro");
          break;

...código  omitido...

    case 12: 
          System.out.println("Dezembro");
          break;

    default: 
          System.out.println("Mês inválido");
          break;
}

Segue o link da documentação da Oracle para referência: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

Bons estudos e boa sorte ;) !