java - BMI计算器,几种方法,代码查看

标签 java

这是我的第一个具有多种方法的程序

第一个必须将高度转换为英寸

第二次计算BMI

第3次接收BMI并返回状态

第四个是主要的,必须调用输入并生成输出

问题是它不计算 BMI - 它输出 0。 当我只用一种方法运行它时,它工作得很好。可能出了什么问题?

package bmiCalculator;
java.util.Scanner;
public class BmiCalculator {

public static double bmi;
public static int height;
public static int feet;
public static int inches;
public static int weight;
public static String status;


  public static void convertToInches (){

    height = feet * 12 + inches;

 }
  public static void bmiCalculator (){

     bmi = (weight * 703) / (height * height);


}
    public static void weightStatus () {



        if (bmi < 18.5){
           status = "underweight"; 
         }
        else if (bmi <= 24.9){
            status = "normal";
        }
        else if (bmi <= 29.9){
            status = "overweight";
        }
        else if (bmi >= 30){
            status = "obese";
        }
    }

    public static void main (String[] args){

       System.out.println("Put your height in ft and inches"); 
       Scanner sc = new Scanner(System.in); 
       feet = sc.nextInt();
       inches = sc.nextInt();

       System.out.println("Put your weight in pounds");
       weight = sc.nextInt();


       System.out.println("Height: " + feet + " feet, " + inches + " inches");
       System.out.println("Weight: " + weight + " pounds");
       System.out.println("Your BMI is " + bmi + "category" + status);

    }
 }

最佳答案

声明这些方法并不意味着所有方法都会执行。您需要相应地从 main 调用这些方法。

例如:

   ...
   System.out.println("Put your weight in pounds");
   weight = sc.nextInt();


   System.out.println("Height: " + feet + " feet, " + inches + " inches");
   System.out.println("Weight: " + weight + " pounds");
   // call corresponding method to calculate:

   convertToInches();
   bmiCalculator();
   weightStatus();
   // now all of those method are executed.

   System.out.println("Your BMI is " + bmi + "category" + status);

将所有这些方法和属性声明为静态并不是一个好的做法。请了解 OOP 的工作原理。

关于java - BMI计算器,几种方法,代码查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57246405/

相关文章:

java - 检索 token 时无法调用 keycloak 协议(protocol)映射器

java - Hibernate 获取 JasperRunManager 的连接对象

java - 错误 :(27, 13) 无法解析 : com. antonyt.infiniteviewpager :library:1. 0.0

Java 进程崩溃

java - "double Cannot be Dereferenced"toString() - 这种没有错误的替代形式是否意味着同样的事情?

java - 使用 JSOUP 选择特定的 HTML 表

java - Android 将 unix 时间戳设置为 DatePicker

Java 发布资源

java - 在jsp中显示多个BufferedImage

java - OpenGL无法绘制线条,但四边形可以工作