使用Java测量身体肥瘦指数公式:BMI值(BMI=体重/(身高*身高) BMI在18-25之间为标准。体重单位为公斤,身高单位为米 。 为了防止用户输入错误,请编写自定义异常类,一个是身高值XX不正常,一个是体重值不正确。 (1)请用户输入身高和体重,进行下面的判断: 当用户输入的身高超过2.5或小于0.5时,调用异常显示"身高输入错误, xxx不是合理的身高 当用户输入的体重超过300或小于20时,调用异常显示"体重输入错误, xxx不是合理的体重 如果正确,就输出他的身体BMI并输出标准还是肥胖还是偏瘦。 (2)定义一个Person类,里面有身高和体重成员变量,有一个BMI()计算他的BMI值,并有一个show()方法输出他的BMI和身高和体重情况。
时间: 2024-02-24 09:59:27 浏览: 313
好的,下面是 Java 代码,可以实现你的需求:
```java
import java.util.Scanner;
public class BMI {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double height = 0.0;
double weight = 0.0;
try {
System.out.print("请输入身高(单位:米):");
height = scanner.nextDouble();
if (height < 0.5 || height > 2.5) {
throw new AbnormalHeightException("身高输入错误," + height + "不是合理的身高");
}
System.out.print("请输入体重(单位:公斤):");
weight = scanner.nextDouble();
if (weight < 20 || weight > 300) {
throw new AbnormalWeightException("体重输入错误," + weight + "不是合理的体重");
}
double bmi = weight / (height * height); // 计算 BMI 值
System.out.printf("BMI 值为:%.2f\n", bmi);
if (bmi >= 18 && bmi <= 25) {
System.out.println("BMI 值在正常范围内");
} else if (bmi > 25) {
System.out.println("BMI 值过高,属于肥胖");
} else {
System.out.println("BMI 值过低,属于偏瘦");
}
} catch (AbnormalHeightException e) {
System.out.println(e.getMessage());
} catch (AbnormalWeightException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("输入错误:" + e.getMessage());
}
scanner.close();
// 测试 Person 类
Person person = new Person(height, weight);
person.show();
}
}
// 自定义异常类,用于处理身高值不正常的情况
class AbnormalHeightException extends Exception {
public AbnormalHeightException(String message) {
super(message);
}
}
// 自定义异常类,用于处理体重值不正常的情况
class AbnormalWeightException extends Exception {
public AbnormalWeightException(String message) {
super(message);
}
}
// Person 类,用于存储身高和体重信息,并计算 BMI 值
class Person {
private double height; // 身高,单位:米
private double weight; // 体重,单位:公斤
public Person(double height, double weight) {
this.height = height;
this.weight = weight;
}
public double getBMI() {
return weight / (height * height);
}
public void show() {
System.out.printf("身高:%.2f米,体重:%.2f公斤,BMI:%.2f\n", height, weight, getBMI());
}
}
```
在上面的代码中,我们首先使用 `Scanner` 类获取用户输入的身高和体重,并判断是否在正常范围内。如果不在正常范围内,将抛出自定义异常类。如果输入正确,则计算 BMI 值,并根据标准判断是否为正常范围内、肥胖或偏瘦。最后,我们定义了 `Person` 类,用于存储身高和体重信息,并计算 BMI 值。这里我们使用了类的封装特性,将身高和体重做成私有成员变量,提供了 `getBMI()` 和 `show()` 方法,分别用于计算 BMI 值和输出身高、体重和 BMI 值。
阅读全文