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;
}
}
2105

被折叠的 条评论
为什么被折叠?



