BMI计算器Java

BMI计算器Java,java,Java,我正在创建体重指数计算器,但在运行该程序时遇到问题,因为我的结果是: nulls重0.0,高0.0。你的体重指数是 什么时候应该注明姓名、体重、BMI以及是体重不足、健康、超重还是肥胖 代码如下: public class Person { private String firstName; private double heightInches; private double weightPounds; public Person (String use

我正在创建体重指数计算器,但在运行该程序时遇到问题,因为我的结果是:

nulls重0.0,高0.0。你的体重指数是

什么时候应该注明姓名、体重、BMI以及是体重不足、健康、超重还是肥胖

代码如下:

public class Person {

    private String firstName;
    private double  heightInches;
    private double weightPounds;


    public Person (String userFirstName, double userHeightInches, double userWeightPounds)
    {


        this.firstName = firstName;
        this.heightInches = heightInches;
        this.weightPounds = weightPounds;


    }



    public String getFirstName()
    {
        return this.firstName;
    }

    public double getHeightInches()
    {
        return this.heightInches;
    }

    public double getWeightPounds()
    {
        return this.weightPounds;
    }

    public void setFirstName (String firstName)
    {
        this.firstName = firstName;
    }

    public void setHeightInches(double userHeightInches)
    {
        this.heightInches = userHeightInches;
    }

    public void setWeightPounds(double userWeightPounds)
    {
        this.weightPounds = userWeightPounds;
    }





    @Override
    public String toString()
    {
        return this.firstName + "weighs " + this.weightPounds + " and measures  "
               + this.heightInches + " tall. Your BMI is "; 
    }



     public double calculateBMI(double userHeightInches,  double userWeightPounds )

    {


    double BMI = ((userWeightPounds / userHeightInches) * (userHeightInches)) * 703;
    return BMI;


    }
还有

public class BodyMassIndex {
    public static Person anyPerson;
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 

    {

          createPersonObject();
          displayBMI();

    }

    public static void createPersonObject()
    {

        Scanner keyboard = new Scanner(System.in);


        System.out.println("What is your first name?");
        String firstName = keyboard.next();


        System.out.println ("How tall are you (in inches)?");
        Double heightInches = keyboard.nextDouble();



        System.out.println("How much do you weigh (in pounds)?");
        Double weightPounds = keyboard.nextDouble();

        anyPerson = new Person(firstName, heightInches, weightPounds);
    }

    public static void displayBMI()
    {


        double userWeightPounds = 0;
        double userHeightInches = 0;


        double BMI = anyPerson.calculateBMI(userWeightPounds, userHeightInches);

        System.out.println(anyPerson.toString());

        if (BMI < 18.5)
        {
            System.out.println("Underweight");
        }

        else if (BMI >= 18.5 && BMI < 24.9) {
            System.out.println("Healthy");
        }

        else if (BMI >= 25 && BMI < 29.9) {
            System.out.println("Overweight");
        }

        else if (BMI >= 30) {
            System.out.println("Obese");
        }

    }
公共类BodyMassIndex{
公众人物任何人;
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args)
{
createPersonObject();
显示bmi();
}
公共静态void createPersonObject()
{
扫描仪键盘=新扫描仪(System.in);
System.out.println(“您的名字是什么?”);
String firstName=keyboard.next();
System.out.println(“你有多高(英寸)?”;
双高英寸=键盘.nextDouble();
System.out.println(“你的体重是多少(磅)?”;
Double weight磅=键盘.nextDouble();
anyPerson=新人(名字、身高英寸、体重磅);
}
公共静态void displayBMI()
{
双用户权重磅=0;
双用户高度英寸=0;
双倍BMI=任何人。计算BMI(用户体重磅,用户身高英寸);
System.out.println(anyPerson.toString());
如果(体重指数<18.5)
{
系统输出打印项次(“重量不足”);
}
否则,如果(体重指数>=18.5&&BMI<24.9){
System.out.println(“健康”);
}
否则,如果(体重指数>=25&&BMI<29.9){
系统输出打印项次(“超重”);
}
否则,如果(体重指数>=30){
System.out.println(“肥胖”);
}
}

您正在将字段变量设置为自身,这些变量未实例化,因此值为null或0.0。您需要将它们设置为类的参数:this.firstName=userfirstName


由于自动使用0.0和0.0的值,您的BMI计算也处于关闭状态。您应该使用
Person
类中的getter方法进行计算。

您正在将字段变量设置为自身,这些变量未实例化,因此值为null或0.0。您需要将它们设置为对于您的类:this.firstName=userfirstName


由于自动使用0.0和0.0的值,您的BMI计算也处于关闭状态。您应该使用
Person
类中的getter方法进行计算。

您应该按以下方式计算BMI吗?:

public static void displayBMI() {

  /* This code is no longer needed */
  double userWeightPounds = 0;
  double userHeightInches = 0;

  double BMI = anyPerson.calculateBMI(anyPerson.getWeightPounds(), anyPerson.getHeightInches());
  ...
您还可以进一步简化代码,使
Person
计算BMI,而无需请求体重和身高作为参数:

public double calculateBMI() {
   return ((this.weightPounds / this.heightInches) * (this.heightInches)) * 703;

}

检查零输入也是很好的。

你应该按以下方式计算BMI吗?:

public static void displayBMI() {

  /* This code is no longer needed */
  double userWeightPounds = 0;
  double userHeightInches = 0;

  double BMI = anyPerson.calculateBMI(anyPerson.getWeightPounds(), anyPerson.getHeightInches());
  ...
您还可以进一步简化代码,使
Person
计算BMI,而无需请求体重和身高作为参数:

public double calculateBMI() {
   return ((this.weightPounds / this.heightInches) * (this.heightInches)) * 703;

}

检查零输入也很好。

您应该调试您的程序。您应该调试您的程序。