java - 通过 if 语句后值不会改变
问题描述
该程序应该在考虑您的性别、BMR 和活动水平后计算您的 TDEE,但如果活动水平无法通过,它就无法计算它,我觉得这与我的 if 语句有关,但我真的不知道怎么办。
性别和级别的值类型曾经是char,但是我的老师告诉我将其更改为String,但它仍然不起作用。
import java.util.Scanner;
public class TDEE_2
{
public static void main(String [ ] args)
{
Scanner in = new Scanner(System.in);
double activityFactor = 0.0;
System.out.println("Please enter your name: ");
String firstName = in.next();
String lastName = in.nextLine();
String name = firstName + lastName;
System.out.println("Please enter your BMR: ");
double bmr = in.nextDouble();
System.out.println("Please enter your gender (M/F): ");
String gender = in.next();
System.out.println("Select Your Activity Level");
System.out.println("[A] Resting (Sleeping, Reclining)");
System.out.println("[B] Sedentary (Minimal Movement)");
System.out.println("[C] Light (Sitting, Stading)");
System.out.println("[D] Moderate (Light Manual Labor, Dacing, Riding Bike)");
System.out.println("[E] Very Active (Team Sports, Hard Manual Labor)\n");
System.out.println("Enter the letter corresponding to your activity level: ");
String level = in.next();
if(gender == "M" && level == "A")
activityFactor = 1.0;
else if(gender == "M" && level == "B")
activityFactor = 1.3;
else if(gender == "M" && level == "C")
activityFactor = 1.6;
else if(gender == "M" && level == "D")
activityFactor = 1.7;
else if(gender == "M" && level == "E")
activityFactor = 2.1;
else if(gender == "M" && level == "F")
activityFactor = 2.4;
else if(gender == "F" && level == "A")
activityFactor = 1.0;
else if(gender == "F" && level == "B")
activityFactor = 1.3;
else if(gender == "F" && level == "C")
activityFactor = 1.5;
else if(gender == "F" && level == "D")
activityFactor = 1.6;
else if(gender == "F" && level == "E")
activityFactor = 1.9;
else if(gender == "F" && level == "F")
activityFactor = 2.2;
else
System.out.println("Sorry, you entered an invalid letter.");
double tdee = bmr * activityFactor;
System.out.println("Your results:");
System.out.println("Name: " + name + "\t\t Gender: " + gender);
System.out.println("BMR: " + bmr + " calories \t\t Activity Factor: " + activityFactor);
System.out.print("TDEE: " + tdee + " calories");
}
}
当我运行它时,活动级别和 TDEE 显示为空,但它们应该具有值。
我是java新手,不知道该怎么办
解决方案
推荐阅读
- python - 如何在设置类属性时将传递类设置为功能
- python - 按升序生成随机数?
- python - python numpy的平均列表列表
- ruby-on-rails - 遇到致命问题:使用 ruby on rails 对用户“postgres”进行对等身份验证失败
- php - PHP 7.3.8 中遇到的非数字值
- python - 为什么我的神经网络训练这么慢?
- javascript - Laravel react-admin error orderBy not working
- google-maps - Google Geocode API 提供区域数据
- python - Kubernetes 容器应用程序中的 Google App Engine 请求样式日志记录
- reactjs - 使用快照进行反应测试