实验4输出身体状况 实验教学目标: 使用if-else分支和while循环语句解决问题。 实验场地或主要设备与器材:计算机 用户依次输入身高(m),体重(kg) 计算公式:BMI =身高/ 体重^2 BMI < 18.5:过轻 18.5≤ BMI <24:正常 24 ≤ BMI <27:过重 27 ≤ BMI < 30:轻度肥胖 30 ≤ BMI < 35:中度肥胖 BMI ≥ 35:重度肥胖 输出格式:您的BMI是:bmi,状态(过轻,正常...),bmi保留三位小数 如果输入的身高大于2.5m或者体重大于150kg,输出“输入数据不符合实际,请重新输入” Java
时间: 2024-02-13 09:03:55 浏览: 79
好的,以下是使用 Java 实现上述功能的代码:
```java
import java.util.Scanner;
public class BMI {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double height, weight, bmi;
String bmiStr;
while (true) {
System.out.print("请输入身高(单位:米):");
height = scanner.nextDouble();
System.out.print("请输入体重(单位:千克):");
weight = scanner.nextDouble();
if (height > 2.5 || weight > 150) {
System.out.println("输入数据不符合实际,请重新输入");
continue;
}
bmi = weight / (height * height);
bmiStr = String.format("%.3f", bmi);
if (bmi < 18.5) {
System.out.println("您的BMI是:" + bmiStr + ",状态:过轻");
} else if (bmi < 24) {
System.out.println("您的BMI是:" + bmiStr + ",状态:正常");
} else if (bmi < 27) {
System.out.println("您的BMI是:" + bmiStr + ",状态:过重");
} else if (bmi < 30) {
System.out.println("您的BMI是:" + bmiStr + ",状态:轻度肥胖");
} else if (bmi < 35) {
System.out.println("您的BMI是:" + bmiStr + ",状态:中度肥胖");
} else {
System.out.println("您的BMI是:" + bmiStr + ",状态:重度肥胖");
}
break;
}
scanner.close();
}
}
```
该代码首先导入了 `java.util.Scanner` 类,用于接收用户的输入。使用 while 循环确保用户输入的身高和体重符合实际情况。如果输入的身高大于2.5m或者体重大于150kg,输出提示信息并继续循环,要求用户重新输入。否则,计算出 BMI 值,并使用 if-else 分支语句判断用户的身体状况,最后输出结果。在输出 BMI 值时,使用了 `String.format()` 方法保留了三位小数。最后,关闭了 `Scanner` 对象。
阅读全文