好的,所以我写了这个简单的代码来计算BMI并根据输入的值提供结果(即:BMI +正常/肥胖等)。笔者随机开始测试它,发现它的工作为我把除了体重= 73和身高= 1.71的所有值...BMI计算器错误? Java
package basics;
import java.util.*;
public class BMI {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
double W, H, BMI;
System.out.print("Enter weight in kg");
W = sc.nextDouble();
System.out.print("Enter height in m: ");
H = sc.nextDouble();
BMI = W/(H*H);
System.out.println("Your BMI is : " + (int) BMI);
if (BMI < 18.5)
System.out.println("Underweight");
if (BMI >= 18.5 && BMI <= 24.9)
System.out.println("Normal");
if (BMI >=25 && BMI <= 29.9)
System.out.println("Overweight");
else
if (BMI >= 30)
System.out.println("Obese");
}
}
我想这可能是因为这些值计算出的体重指数是24.9这是一个边界值。有人可以帮我解决这个问题吗?提前致谢。
我没有看到问题出在哪里,但我想告诉你下面的内容, 在下面的表达式中(BMI> = 25 && BMI <= 29.9)''你可以将最后一个操作符改为'<'而不是'<='和最后一个数字到'30',所以它也会包含像'29.95'这样的值。像这样:'(BMI> = 25 && BMI <30)'(所有其他IF语句都是一样的) –