Quando necessário atribuir valor a uma variável segundo alguma condição. Melhor usar if else? Melhor usar if ternário?
Depende do programador, creio eu.
Veja o exemplo de um algoritmo para calcular o IMC:
public class CalculoIMC {
private double meuIndice;
private double meuPesoMininmoIdeal;
private double meuPesoMaximoIdeal;
public CalculoIMC(double pesoKG, double alturaM) {
this.meuIndice = pesoKG / (alturaM * 2);
this.meuPesoMininmoIdeal = 18.5 * (alturaM * 2);
this.meuPesoMaximoIdeal = 24.9 * (alturaM * 2);
}
public void comIF(){
String resposta = null;
if(this.meuIndice < 18.5){
resposta = "Você está abaixo do peso ideal";
}
else if(this.meuIndice < 24.9){
resposta = "Parabéns ? você está em seu peso normal!";
}
else if(this.meuIndice < 29.9){
resposta = "Você está acima de seu peso (sobrepeso)";
}
else if(this.meuIndice < 34.9){
resposta = "Obesidade grau I";
}
else if(this.meuIndice < 29.9){
resposta = "Obesidade grau II";
}
else{
resposta = "Obesidade grau III";
}
this.escreva(resposta);
}
public void comIFTernario() {
String resposta =
this.meuIndice < 18.5? "Você está abaixo do peso ideal":
this.meuIndice < 24.9? "Parabéns ? você está em seu peso normal!":
this.meuIndice < 29.9? "Você está acima de seu peso (sobrepeso)":
this.meuIndice < 34.9? "Obesidade grau I":
this.meuIndice < 29.9? "Obesidade grau II":
"Obesidade grau III"
;
this.escreva(resposta);
}
private void escreva(String resposta) {
System.out.printf("%s\nSeu IMC eh: [%.2f]\nSeu peso ideal estah entre: [%.2fkg e %.2fkg]\n",
resposta,
this.meuIndice,
this.meuPesoMininmoIdeal,
this.meuPesoMaximoIdeal);
}
public static void main(String[] args) {
CalculoIMC calculoIMC = new CalculoIMC(80.0, 2.0);
calculoIMC.comIF();
System.out.println("*************************");
calculoIMC.comIFTernario();
}
}