健康指数计算器

Java代码编写健康指数的计算器

前言

近期的一个课程上我了解到关于如何计算自己身体的健康指数的方法,于是通过从中找到灵感,我就在想那么我自己也来编写一个能够计算自己的健康指数的应用程序,来查看自己身体状况。

介绍

既然要开发一个简单的健康计算器应用程序,那么用户就得输入相关个人信息(如年龄、性别、体重、身高),并计算出用户的BMI(身体质量指数)和基础代谢率(BMR)来查看身体状况。

条件

BMI
BMI(Body Mass Index,身体质量指数)是用来评估体重是否适宜的一个常用指标。它通过体重(以千克为单位)除以身高(以米为单位)的平方来计算。
BMI的正常范围通常定义为18.5到24.9(kg/m?)。具体来说:
BMI小于18.5被认为是体重过低;
BMI在18.5到24.9之间被认为是正常范围:
BMI在25到29.9之间被认为是超重:
BMI在30及以上被认为是肥胖。
BMR
BMR的计算可以使用不同的公式,其中Harris-Benedict式是比较常见的:
对于男性:BMR=88.362+(13.397 x体重[kg])+ (4.799x身高[cm])-(5.677x年龄岁)
对于女性:BMR=447.593+(9.247x体重[kg])+(3.098x身高[cm])-(4.330x年龄岁)

基础代谢率(BMR)的具体数值因人而异主要受年龄、性别、体重、身高、体脂比例和肌肉量等因素影响。以下是根据不同公式计算的成年男女平均BMR的大概范围:
·男性:大约在1500至2500卡路里/天之间,
·女性:大约在1200至2000卡路里/天之间.

开始编写代码

首先我们根据上面两个介绍和条件里的内容,我们先定义相关的个人信息(如年龄、性别、体重、身高)

Scanner sc = new Scanner(System.in);
System.out.println("你的年龄:");
int age = sc.nextInt();
System.out.println("性别(0男,1女)");
int sex = sc.nextInt();
System.out.println("体重(KG)");
double weight = sc.nextDouble();
System.out.println("身高(m)");
double height = sc.nextDouble();

接着在定义获取BMI和BMR指数的两个方法

//获取BMR
public static double getBMR(int age, int sex, double weight, double height) {
     double BMR1, BMR2, BMR;
     BMR1 = 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age);
     BMR2 = 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
     BMR = (sex == 0 || sex == 1) ? BMR1 : BMR2;
     return BMR;
}

//获取BMI
public static double getBMI(double weight, double height) {
     double BMI = weight / (height * height);
     return BMI;
}

然后我们在Main方法定义两个获取BMI和BMR的两个变量名

double I = getBMI(weight, height);
double R = getBMR(age, sex, weight, height);

//输出BMI和BMR的值
System.out.println("BMI:" + I);
System.out.println("BMR:" + R);

最后我们在根据条件BMI和BMR里给的内容来给出分支

//BMI评估体重是否适宜
if (I < 18.5) {
    System.out.println("你的体重过低");
} else if (I >= 18.5 && I <= 24.9) {
    System.out.println("体重正常");
} else if (I >= 25 && I <= 29.9) {
    System.out.println("体重超重");
} else {
    System.out.println("肥胖");
}
//BMR基础代谢率
if (sex == 0) {
    if (R < 1500) {
        System.out.println("你的身体代谢过低");
    } else if (R >= 1500 && R <= 2500) {
        System.out.println("代谢正常");
    } else {
        System.out.println("身体代谢过高");
    }
} else if (sex == 1) {
    if (R < 1200) {
        System.out.println("你的身体代谢过低");
    } else if (R >= 1200 && R <= 2000) {
        System.out.println("代谢正常");
    } else {
        System.out.println("身体代谢过高");
    }
}

到这里整个的步骤也就完成了

完整的代码

import java.util.Scanner;

public class Health_Cal {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("你的年龄:");
        int age = sc.nextInt();
        System.out.println("性别(0男,1女)");
        int sex = sc.nextInt();
        System.out.println("体重(KG)");
        double weight = sc.nextDouble();
        System.out.println("身高(m)");
        double height = sc.nextDouble();

        //BMI、BMR
        double I = getBMI(weight, height);
        double R = getBMR(age, sex, weight, height);

        System.out.println("BMI:" + I);
        System.out.println("BMR:" + R);

        //BMI评估体重是否适宜
        if (I < 18.5) {
            System.out.println("你的体重过低");
        } else if (I >= 18.5 && I <= 24.9) {
            System.out.println("体重正常");
        } else if (I >= 25 && I <= 29.9) {
            System.out.println("体重超重");
        } else {
            System.out.println("肥胖");
        }

        //BMR基础代谢率
        if (sex == 0) {
            if (R < 1500) {
                System.out.println("你的身体代谢过低");
            } else if (R >= 1500 && R <= 2500) {
                System.out.println("代谢正常");
            } else {
                System.out.println("身体代谢过高");
            }
        } else if (sex == 1) {
            if (R < 1200) {
                System.out.println("你的身体代谢过低");
            } else if (R >= 1200 && R <= 2000) {
                System.out.println("代谢正常");
            } else {
                System.out.println("身体代谢过高");
            }
        }
    }
    //获取BMR
    public static double getBMR(int age, int sex, double weight, double height) {
        double BMR1, BMR2, BMR;
        BMR1 = 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age);
        BMR2 = 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
        BMR = (sex == 0 || sex == 1) ? BMR1 : BMR2;
        return BMR;
    }

    //获取BMI
    public static double getBMI(double weight, double height) {
        double BMI = weight / (height * height);
        return BMI;
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值