Java计算身体质量指数BMI
本帖最后由 s520z 于 2023-3-14 20:48 编辑import java.util.*;
class BMI {
public static void main(String[] args) {
/*
身体质量指数BMI
计算公式:BMI=体重(千克)除以身高(米)的平方。
*BMI分类 *中国参考标准 *相关疾病发病的危险性
体重过低 BMI<18.5 低(但其它疾病危险性增加)
正常范围 18.5≤BMI<24 平均水平
超重 BMI≥24 增加
肥胖前期 24<BMI<28 增加
Ⅰ度肥胖 28≤BMI<30 中度增加
Ⅱ度肥胖 30≤BMl<40 严重增加
Ⅲ度肥胖 BMI≥40.0 非常严重增加
*/
//double height = 175;//单位: 厘米
//double weight = 100;//单位: 千克(公斤)
try (Scanner input = new Scanner(System.in)) {
System.out.println("请您输入你的身高(厘米)");
int height = input.nextInt();
System.out.println("请您输入你的体重(千克&公斤)");
int weight = input.nextInt();
double lower = (double) height / 100;
double meter = weight / (lower * lower);
System.out.println("*您的BMI指数:" + meter);
String classification = "*BMI分类:";
String serious = "*危险程度:";
if (meter >= 40) {
System.out.println(classification + "Ⅲ度肥胖");
System.out.println(serious + "非常严重增加");
} else if (meter < 40 && 30 <= meter) {
System.out.println(classification + "Ⅱ度肥胖");
System.out.println(serious + "严重增加");
} else if (meter >= 28 && 30 > meter) {
System.out.println(classification + "Ⅰ度肥胖");
System.out.println(serious + "中度增加");
} else if (meter >= 24 && 28 < meter) {
System.out.println(classification + "肥胖前期");
System.out.println(serious + "增加");
} else if (meter >= 24) {
System.out.println(classification + "超重");
System.out.println(serious + "增加");
} else if (meter < 24 && 18.5 <= meter) {
System.out.println(classification + "正常范围");
System.out.println(serious + "平均水平");
} else if (meter < 18.5) {
System.out.println(classification + "体重过低");
System.out.println(serious + "低");
}
}
}
}
小白第一次学Java,如有不对的地方请指出 本帖最后由 wang2019 于 2022-9-5 17:24 编辑
比着写了个Go的,一起交流
好像你这个BMI的计算方式有问题 (超重和 肥胖前期)
```
package main
import "fmt"
func main() {
/*
身体质量指数BMI
计算公式:BMI=体重(千克)除以身高(米)的平方。
*BMI分类 *中国参考标准 *相关疾病发病的危险性
体重过低 BMI<18.5 低(但其它疾病危险性增加)
正常范围 18.5≤BMI<24 平均水平
超重 BMI≥24 增加
肥胖前期 24<BMI<28 增加
Ⅰ度肥胖 28≤BMI<30 中度增加
Ⅱ度肥胖 30≤BMl<40 严重增加
Ⅲ度肥胖 BMI≥40.0 非常严重增加
*/
var (
height int // 定义身高变量
weight int // 定义体重变量
lower float64
meter float64 // 定义BMI变量
classIfication = "BMI分类: "
serious = "危险程度: "
)
fmt.Println("请输入您的身高(厘米)和体重(千克&公斤):")
fmt.Scan(&height, &weight) // 获取用户输入
fmt.Printf("您的身高为: %v 厘米, 体重为: %v 千克\n", height, weight)
lower = float64(height) / 100 // 身高厘米转换成米
meter = float64(weight) / (lower * lower) // 计算BMI指数
fmt.Printf("您的BMI指数为: %v\n", meter)
// 进行BMI指数判断
switch {
case meter >= 40:
{
fmt.Println(classIfication, "Ⅲ度肥胖")
fmt.Println(serious + "非常严重增加")
}
case meter >= 30 && meter < 40:
{
fmt.Println(classIfication, "Ⅱ度肥胖")
fmt.Println(serious + "严重增加")
}
case meter >= 28 && meter < 30:
{
fmt.Println(classIfication, "Ⅰ度肥胖")
fmt.Println(serious, "中度增加")
}
case meter > 24 && meter < 28:
{
fmt.Println(classIfication, "肥胖前期")
fmt.Println(serious, "增加")
}
case meter >= 18.5 && meter < 24:
{
fmt.Println(classIfication, "正常范围")
fmt.Println(serious, "平均水平")
}
default:
fmt.Println(classIfication, "体重过低")
fmt.Println(serious, "低")
}
}
``` 我减肥的时候 用excel写了一个自动计算的表。。。哈哈哈 第36行是进不去的哟。。。 第 36行应该是小于40吧 meter < 40 && 30 <= meter
加油!!!!!!!!!!!! 又多了个练手的小案例{:1_921:}
页:
[1]