这是我的第一个具有多种方法的程序
第一个必须将高度转换为英寸
第二次计算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/