使用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 20:53:32 浏览: 93
好的,我可以为您解答这个问题。
首先,我们需要定义两个自定义异常类,分别是HeightException和WeightException,代码如下:
```java
public class HeightException extends Exception {
public HeightException(String message) {
super(message);
}
}
```
```java
public class WeightException extends Exception {
public WeightException(String message) {
super(message);
}
}
```
然后,我们可以编写一个名为BMI的类,其中包含一个静态方法用于计算BMI值,以及一个show()方法用于输出BMI和身高体重情况。代码如下:
```java
public class BMI {
private double height;
private double weight;
public BMI(double height, double weight) throws HeightException, WeightException {
if (height < 0.5 || height > 2.5) {
throw new HeightException("身高输入错误," + height + "不是合理的身高");
}
if (weight < 20 || weight > 300) {
throw new WeightException("体重输入错误," + weight + "不是合理的体重");
}
this.height = height;
this.weight = weight;
}
public static double calculateBMI(double height, double weight) {
return weight / (height * height);
}
public void show() {
double bmi = calculateBMI(height, weight);
String result;
if (bmi < 18) {
result = "偏瘦";
} else if (bmi < 25) {
result = "标准";
} else {
result = "肥胖";
}
System.out.println("身高:" + height + "米,体重:" + weight + "公斤,BMI:" + bmi + ",体型:" + result);
}
}
```
最后,我们可以在主函数中调用BMI类的构造函数和show()方法,示例代码如下:
```java
public class Main {
public static void main(String[] args) {
try {
BMI bmi = new BMI(1.8, 75);
bmi.show();
} catch (HeightException | WeightException e) {
System.out.println(e.getMessage());
}
}
}
```
这样,当用户输入错误的身高或体重时,程序会抛出相应的异常,并输出错误信息;否则,程序会计算BMI并输出结果。
阅读全文