Ajuda nesse exercício - IMC

5 respostas
alissonlp25
import javax.swing.JOptionPane;
public class AtividadeEstruturada {

	
	public static void main(String[] args) {
		

  
		String Peso=JOptionPane.showInputDialog("Informe Peso");
        float peso=Float.parseFloat(Peso); //Passa PESO (String) para peso (float)
	 
	     
        String Altura= JOptionPane.showInputDialog("Informe Altura");
        float altura=Float.parseFloat(Altura); //Passa Altura (String) para altura (float)
	
	 float imc= peso /(altura*altura);
	
	  

	   JOptionPane.showMessageDialog(null,"Imc ="+imc);
	   [b] if (imc <17) {
	    	
	    	JOptionPane.showMessageDialog(null,"Muito abaixo do Peso!");
	    	if (imc >=17&&imc<=18.49){
	    		
	    	  	JOptionPane.showMessageDialog(null,"Abaixo do Peso");}
	    	  	if (imc>=18.5&&imc<=24.99){
	    	  		
	    	  	  	JOptionPane.showMessageDialog(null,"Peso Normal!");}
	    	  	  	if (imc>=25&&imc<=29.99) {
	    	  	    	JOptionPane.showMessageDialog(null,"Acima do Peso!");}
	    	  	    	
	    	  	    	if (imc>=30&&imc<=34.99) {
		    	  	    	JOptionPane.showMessageDialog(null,"Obesidade I!");}
	    	  	    	
		    	  	    	if (imc>=35&imc<=39.99) {
			    	  	    	JOptionPane.showMessageDialog(null,"Obesidade II(Severa)!");}
		    	  	    	
			    	  	    	if (imc>40) {
				    	  	    	JOptionPane.showMessageDialog(null,"Obesidade III(Morbida)!");} 
			    	  	    	
	    	  	    	
	    	  	  	}
	    	  	
	    	  	}
	    	}

GOSTARIA DE SABER COMO EU POSSO MODIFICAR A CASA DECIMAL DO RESULTADO NO IMC PARA QUE ENTRE NO IF E SE A ESTRUTURA DE REPETIÇÃO ESTA ADEQUADA.

5 Respostas

Rodrigo_Sasaki

Antes de postar leia isso

juliomendes90

Cara,

Primeiramente, utiliza a formatação padrão para código. Use a tag “Code”, para facilitar o entendimento e melhorar a visualização.
Existem tópicos explicando isso: http://www.guj.com.br/java/287476-gujnautas-how-to

Abs,

gpd38

Dá uma olhada nestes links, de repente te ajuda.

http://javafree.uol.com.br/topic-862538-Calculo-IMC.html

http://www.pb.utfpr.edu.br/omero/Java/Fontes/Dois/_31.Htm

http://www.guj.com.br/java/57806-calculo-imc

http://equalsignorecase.blogspot.com.br/2011/03/calcular-imc.html

J

alissonlp25, bom dia.

Eu reparei que na linha 21, do seu código, tem um [b]. Retira isso! Pra que server?
Outra coisa, você colocou apenas a condição if…if…if…if, onde está o else if?
Dê uma olhada no que eu fiz para você e vê se atende a sua necessidade.

import javax.swing.JOptionPane;  
public class AtividadeEstruturada {  
  
      
    public static void main(String[] args) {
    	float peso, altura, imc;  
          
  		peso = Float.parseFloat(JOptionPane.showInputDialog("Informe o seu peso:"));
  		altura = Float.parseFloat(JOptionPane.showInputDialog("Informe a sua altura:"));
      
        imc = peso /(altura*altura);   
  
       JOptionPane.showMessageDialog(null,"Imc ="+imc);  
       if (imc <17) {  
            JOptionPane.showMessageDialog(null,"Muito abaixo do Peso!");
       }
       else if (imc >=17&&imc<=18.49){   
			JOptionPane.showMessageDialog(null,"Abaixo do Peso");
			}  
       else if (imc>=18.5&&imc<=24.99){          
            JOptionPane.showMessageDialog(null,"Peso Normal!");
             }  
       else if (imc>=25&&imc<=29.99) {  
            JOptionPane.showMessageDialog(null,"Acima do Peso!");
            }  
                          
       else if(imc>=30&&imc<=34.99) {  
            JOptionPane.showMessageDialog(null,"Obesidade I!");
            }  
                          
       else if(imc>=35&imc<=39.99) {  
            JOptionPane.showMessageDialog(null,"Obesidade II(Severa)!");
            }  
                              
       else if(imc>40) {  
            JOptionPane.showMessageDialog(null,"Obesidade III(Morbida)!");
            }   
   }  
}
A
alissonlp25:
import javax.swing.JOptionPane;
public class AtividadeEstruturada {

	
	public static void main(String[] args) {
		

  
		String Peso=JOptionPane.showInputDialog("Informe Peso");
        float peso=Float.parseFloat(Peso); //Passa PESO (String) para peso (float)
	 
	     
        String Altura= JOptionPane.showInputDialog("Informe Altura");
        float altura=Float.parseFloat(Altura); //Passa Altura (String) para altura (float)
	
	 float imc= peso /(altura*altura);
	
	  

	   JOptionPane.showMessageDialog(null,"Imc ="+imc);
	   [b] if (imc <17) {
	    	
	    	JOptionPane.showMessageDialog(null,"Muito abaixo do Peso!");
	    	if (imc >=17&&imc<=18.49){
	    		
	    	  	JOptionPane.showMessageDialog(null,"Abaixo do Peso");}
	    	  	if (imc>=18.5&&imc<=24.99){
	    	  		
	    	  	  	JOptionPane.showMessageDialog(null,"Peso Normal!");}
	    	  	  	if (imc>=25&&imc<=29.99) {
	    	  	    	JOptionPane.showMessageDialog(null,"Acima do Peso!");}
	    	  	    	
	    	  	    	if (imc>=30&&imc<=34.99) {
		    	  	    	JOptionPane.showMessageDialog(null,"Obesidade I!");}
	    	  	    	
		    	  	    	if (imc>=35&imc<=39.99) {
			    	  	    	JOptionPane.showMessageDialog(null,"Obesidade II(Severa)!");}
		    	  	    	
			    	  	    	if (imc>40) {
				    	  	    	JOptionPane.showMessageDialog(null,"Obesidade III(Morbida)!");} 
			    	  	    	
	    	  	    	
	    	  	  	}
	    	  	
	    	  	}
	    	}

GOSTARIA DE SABER COMO EU POSSO MODIFICAR A CASA DECIMAL DO RESULTADO NO IMC PARA QUE ENTRE NO IF E SE A ESTRUTURA DE REPETIÇÃO ESTA ADEQUADA.

Pesquise sobre DecimalFormat ou NumberFormat, são bem simples de usar.

Em relação a estrutura de repetição, você poderia ter utilizado o switch-case, que no contexto acima acredito que ficaria melhor.

Criado 18 de setembro de 2013
Ultima resposta 26 de set. de 2013
Respostas 5
Participantes 6