Error in IMC code [closed]

-6

I have the code below, which calculates BMI, can you tell me what the error is?

Follow the code:

import java.util.Scanner;
public class Paciente {

        public static double calcularIMC(double P,double A){
            double imc;
            imc=P/(A*A);
            return imc;

    }
        public static String diagnostico(){
            double A,P,imc;
            Scanner entrada=new Scanner(System.in);

            System.out.print("Entre com o valor de sua altura em metros :");
            A=entrada.nextInt();
            System.out.print("Entre com o valor de seu peso em Kg");
            P=entrada.nextInt();
            imc=Paciente.calcularIMC(P,A);

            if (imc<16.0){
                System.out.println("Baixo peso muito grave");
            }
            if (16<imc<16.99){
                System.out.println("Baixo peso grave");
            }
            if (17<imc<18.49){
                System.out.println("Baixo peso");

            }
            if (18.50<imc<24.99){
                System.out.println("Peso norma");
            }
            if(25<imc<29.99){
                System.out.println("Sobrepeso");
            }
            if(30<imc<34.99){
                System.out.println("Obesidade grau I");
            }
            if(35<imc<39.99){
                System.out.println("Obesidade grau II");
            }
            if(imc>=40){
                System.out.println("Obesidade grau II(obesidade morbida");
    
asked by anonymous 06.06.2016 / 21:23

1 answer

2

Your code has several semantic errors, the correct way to compare is not 16<imc<16.99 , but 16< imc && imc <16.99 , are two comparisons being made at the same time.

I gave an improvement on some things, like the main method you changed the name of, and without it your class would not start. However, there is a lot of things to improve, maybe with more studies, you go improving and fixing, or providing more information in the question.

public class Paciente {

    public static double calcularIMC(double P,double A){
            return P/(A*A);
    }

    public static void diagnostico(double imc){

            if (imc < 16.0){
                System.out.println("Baixo peso muito grave");
            }
            if (16< imc && imc <16.99){
                System.out.println("Baixo peso grave");
            }
            if (17<imc && imc <18.49){
                System.out.println("Baixo peso");

            }
            if (18.50< imc && imc < 24.99){
                System.out.println("Peso norma");
            }
            if(25<imc && imc <29.99){
                System.out.println("Sobrepeso");
            }
            if(30<imc && imc <34.99){
                System.out.println("Obesidade grau I");
            }
            if(35<imc && imc <39.99){
                System.out.println("Obesidade grau II");
            }
            if(imc>=40){
                System.out.println("Obesidade grau II(obesidade morbida");
            }
        }

    public static void main (String[] args) {
            double A,P, imc;
            Scanner entrada=new Scanner(System.in);

            System.out.println("Entre com o valor de sua altura em metros :");
            A = entrada.nextDouble();
            System.out.println("Entre com o valor de seu peso em Kg");
            P = entrada.nextDouble();
            diagnostico(calcularIMC(P,A));
    }
}

See working at IDEONE

    
06.06.2016 / 21:54