Quando usar somente vários ifs e quando usar if e else if?
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 ;) !