Switch no lugar do If

Pessoal,

Como eu faria pra substituir esses if por switch? Sendo que o switch não aceita double como argumento.

Converti em String, mas aí, não faço a comparação utilizando operador relacional <.

Pergunta boba agora que talvez só o James Gosling responda o motivo de não aceitar o tipo double como argumento.

import javax.swing.JOptionPane;

public class C0713Exercicio07 {

public static void main (String[] args) {

  double peso, altura, imc;

  peso = 0;
  altura = 0;
  imc = 0;
  
  peso = Float.parseFloat(JOptionPane.showInputDialog(null,"Informe seu peso: "));
  altura = Float.parseFloat(JOptionPane.showInputDialog(null,"Informe sua altura: "));
  
  if (peso < 0.5 || altura < 0.1) {
  	JOptionPane.showMessageDialog(null,"Peso ou altura inválido");
  	System.exit(0);
  }else {
  	imc = peso / (Math.pow(altura, 2));
  }
  	
  if (imc < 18.5)
  	JOptionPane.showMessageDialog(null,imc + " - Abaixo do peso");
  else if (imc < 25)
  	JOptionPane.showMessageDialog(null,imc + " - Peso normal");
  else if (imc < 35)
  	JOptionPane.showMessageDialog(null,imc + " - Sobrepeso");
  else if (imc < 40)
  	JOptionPane.showMessageDialog(null,imc + " - Obesidade grau 1");			
  else if (imc < 40)
  	JOptionPane.showMessageDialog(null,imc + " - Obesidade grau 2");			
  else if (imc > 40)
  	JOptionPane.showMessageDialog(null,imc + " - Obesidade grau 3");

}
}

Obrigado.

Mas o switch case não vai fazer o que vc precisa.

Switch só faz comparação é de igualdade == ou equals() no caso de String.

1 curtida

Não faz sentido utilizar switch neste cenário pois o switch é para escolher entre valores constantes e não entre maiores ou menores.

1 curtida