Java - Problemas com While no eclipse. [resolvido]

ola pessoal

esse programa recebe a altura e o peso de 3 pessoas para calcular sua massa corporea, ele pode retornar 3 mensagens: normal ou obeso ou obeso mórbido.

escrevi ele no eclipse, usando while e if/else.

parece que ele so apresenta a mensagem “normal” não importa o peso que eu coloque, ja consegui fazer com que ele apresentasse “oberso mórbido”, mas nunca “obeso”.

gostaria da ajuda de alguem que me postasse o codigo correto, para eu poder estudar ele.

obrigado.

package eclipseSpace;

import javax.swing.JOptionPane;

public abstract class Entra21_while2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int contWhile = 0;
	while (contWhile <3)
	{//erro arrumar!
		int peso = Integer.parseInt(JOptionPane.showInputDialog 
				("Digite peso pessoa: "));
		int altura = Integer.parseInt(JOptionPane.showInputDialog 
				("Digite altura pessoa: "));
		
			int massa = peso/(altura*altura);
	
		
			if (massa < 26){
				JOptionPane.showMessageDialog(null, "Normal.");
				}
				else {
				}
			if (massa > 25 & massa < 30){
				JOptionPane.showMessageDialog(null, "Obeso.");
				}
				else {
				}
			if (massa > 30){
				JOptionPane.showMessageDialog(null, "Obeso mórbido.");
				}
				else {
				}	
		contWhile++;
		}	
	}

}

troque o operador relacional & por &&

continua apresentando so “normal”

cada if tem um else{“vazio”}…
outra coisa, esse altura * altura. É isso mesmo?

Tem mais erros no seu codigo

  1. O peso e altura não são int você pode defini-los como double (sugiro que você debug o codigo paara ver o porque não retorna o valor correto com int)
  2. Se o resultado der 30 vai ficar fora de todas ifs
  3. Tem else colocado de maneria errada

Oi,

Seu calculo não retornará números inteiros. Logo, altere o tipo das variáveis de int para double.

Tchauzin!

Além de seguir a dica da galera de colocar as variáveis como double, lembre-se que, pela fórmula que você está usando, precisas informar os valores:
Peso, em kg;
Altura, em m.

Abraço!

PS: Testei assim, vai que é lindeza.

Acho que assim roda.

import javax.swing.JOptionPane;
public abstract class obeso {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int contWhile = 0;
    while (contWhile <3)
    {//erro arrumar!
        int peso = Integer.parseInt(JOptionPane.showInputDialog("Digite peso pessoa: "));
        double altura = Double.parseDouble(JOptionPane.showInputDialog("Digite altura pessoa: "));
            double massa = peso/(altura*altura);
         if (massa < 26){
                JOptionPane.showMessageDialog(null, "Normal.");
                }
                else {
                }
            if ((massa > 25) && (massa < 30)){
                JOptionPane.showMessageDialog(null, "Obeso.");
                }
                else {
                }
            if (massa > 30){
                JOptionPane.showMessageDialog(null, "Obeso mórbido.");
                }
                else {
                }
        contWhile++;
        }
    }

}

Boa sorte.

é isso ai firebloods.

pelo visto era as variáveis mesmo, a alguma coisa na síntaze, valeu a todos, forum esta uma beleza!