プログラムは基本的に、ユーザーに BMR と性別を入力するように求めます。次に、活動レベルを選択するように求められます (間違ったものを選択した場合は、「有効な選択肢を入力してください」と印刷する必要があります)。女性と男性では活動因子が異なります。「変数 ActivityFactor を初期化する必要があります」というエラーが発生します。コードを修正するにはどうすればよいですか? ありがとう
iBMR = new Scanner(System.in);
Scanner iGender = new Scanner(System.in);
Scanner iActivity = new Scanner(System.in);
String AcFactor;
double ActivityFactor ;
double TDEE;
//User Input
System.out.println("Please enter your name: ");
String inName = iName.next();
System.out.println("Please enter your BMR: ");
String inBMR = iBMR.next();
double nBMR = Double.parseDouble(inBMR);
System.out.println("Please enter your Gender");
String inGender = iGender.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, Standing)");
System.out.println("[D] Moderate (Light Manual Labor, Dancing, Riding Bike)");
System.out.println("[E] Very Active (Team Sports, Hard Manual Labor)");
System.out.println("[F] Extremely Active (Full-time Athlete, Heavy Manual Labor)");
System.out.println("Enter the letter corrresponding to your activity level: ");
String inActivity = iActivity.next();
//CalculationFemale
if(inActivity.equalsIgnoreCase("A")&& inGender.equalsIgnoreCase("F"))
{
ActivityFactor = 1.0;
}
else if(inActivity.equalsIgnoreCase("B")&& inGender.equalsIgnoreCase("F"))
{
ActivityFactor = 1.3;
}
else if(inActivity.equalsIgnoreCase("C")&& inGender.equalsIgnoreCase("F"))
{
ActivityFactor = 1.5;
}
else if(inActivity.equalsIgnoreCase("D")) && (inGender.equalsIgnoreCase("F"))
{
ActivityFactor = 1.6;
}
else if(inActivity.equalsIgnoreCase("E")&& inGender.equalsIgnoreCase("F"))
{
ActivityFactor = 1.9;
}
else if(inActivity.equalsIgnoreCase("F")&& inGender.equalsIgnoreCase("F"))
{
ActivityFactor = 2.2;
}
else
{
System.out.println("Please enter a valid choice!");
}
//CalculationMale
if(inActivity.equalsIgnoreCase("A")&& inGender.equalsIgnoreCase("M"))
{
ActivityFactor = 1.0;
}
else if(inActivity.equalsIgnoreCase("B")&& inGender.equalsIgnoreCase("M"))
{
ActivityFactor = 1.3;
}
else if(inActivity.equalsIgnoreCase("C")&& inGender.equalsIgnoreCase("M"))
{
ActivityFactor = 1.6;
}
else if(inActivity.equalsIgnoreCase("D")&& inGender.equalsIgnoreCase("M"))
{
ActivityFactor = 1.7;
}
else if(inActivity.equalsIgnoreCase("E")&& inGender.equalsIgnoreCase("M"))
{
ActivityFactor = 2.1;
}
else if(inActivity.equalsIgnoreCase("F")&& inGender.equalsIgnoreCase("M"))
{
ActivityFactor = 2.4;
}
else
{
System.out.println("Please enter a valid choice!");
}
//TDEE
double TD(ActivityFactor * BMR);
**すべての回答ありがとうございます。すべての if/if else 条件が満たされない場合、「else」は ActivityFactor の値を持たないことを認識しています。すべての返信のおかげで、これを追求する私の方法がうまくいかないことに気づきました。ユーザー名/性別/BMR を要求し、活動レベルを選択し、ユーザーが男性/女性であるかどうか、およびその選択に応じて活動係数を割り当てるように要求するようなプログラムをコーディングする方法の概要を教えてください。活動レベル?ありがとう