Quando usar somente vários ifs e quando usar if e else if?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Quando usar somente vários ifs e quando usar if e else if?
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 ;) !