[英]How to use Math.pow for calculating bmi
我正在嘗試編寫一個計算男性或女性 BMI 的程序。 我目前的問題是我已經聲明了所有變量並導入java.util.scanner
。
我只是無法獲得代碼來運行我用於計算和確定此人是男性還是女性的公式。 你可以在下面找到我的代碼。
P/S 是的,有些消息是法語的,我目前正在用法語學習 CS,但這應該不是問題。 提前感謝那些可以幫助我的人。
import java.util.Scanner;
public class exercise11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Decleration des variables
double Poids;
double Taille;
double sc;
double MetH;
double MetF;
Scanner in = new Scanner(System.in);
System.out.println("Mettrez votre Poids");
Poids = in.nextDouble();
System.out.println("Mettrez votre Taille");
Taille = in.nextDouble();
Scanner Gender = new Scanner(System.in);
System.out.println("Mettre votre sexe");
String gender = "Homme";
String gender2 = "Femme";
gender = Gender.next();
gender2 = Gender.next();
sc = Math.pow(Poids, 0.425) * Math.pow(Taille, 0.725) *0.202;
MetH = sc * 24 * 40;
MetF = sc * 24 * 35;
System.out.println("Le Metabolisme pour un homme est: " + MetH);
System.out.println("Le Metabolisme pour une femme est: " + MetF);
}
}
我希望代碼使用公式並返回值,但在我聲明我的身高體重和性別后什么也沒有。
您在輸入 Gender 時調用Gender.next()
兩次。 這使得程序似乎沒有做任何事情,因為它正在等待額外的輸入。
您應該只對性別使用一個變量,然后使用if
來檢查性別並進行相應的計算。
這是糾正后的樣子:
System.out.println("Mettre votre sexe (Homme or Femme)");
String gender = in.next();
sc = Math.pow(Poids, 0.425) * Math.pow(Taille, 0.725) *0.202;
MetH = sc * 24 * 40;
MetF = sc * 24 * 35;
if (gender.equalsIgnoreCase("Homme")) {
System.out.println("Le Metabolisme pour un homme est: " + MetH);
}
else if (gender.equalsIgnoreCase("Femme")){
System.out.println("Le Metabolisme pour une femme est: " + MetF);
}
現在,當用戶鍵入Homme
或Femme
時,它會進行正確的計算。 我還刪除了您使用的名為Gender
的額外Scanner
,並重新使用了in
Scanner
。
如果您想始終計算兩種性別,則根本不需要為此輸入,只需立即計算兩者即可。 並刪除您用於獲取用戶性別輸入的所有代碼。
編輯:這是完成更改的完整代碼:
class exercise11 {
public static void main(String[] args) {
//Decleration des variables
double Poids;
double Taille;
double sc;
double MetH;
double MetF;
Scanner in = new Scanner(System.in);
System.out.println("Mettrez votre Poids");
Poids = in.nextDouble();
System.out.println("Mettrez votre Taille");
Taille = in.nextDouble();
System.out.println("Mettre votre sexe");
String gender = in.next();
sc = Math.pow(Poids, 0.425) * Math.pow(Taille, 0.725) *0.202;
MetH = sc * 24 * 40;
MetF = sc * 24 * 35;
if (gender.equalsIgnoreCase("Homme")) {
System.out.println("Le Metabolisme pour un homme est: " + MetH);
}
else if (gender.equalsIgnoreCase("Femme")){
System.out.println("Le Metabolisme pour une femme est: " + MetF);
}
}
}
您的代碼運行良好。 您似乎沒有提供正確數量的輸入。
我用以下輸入測試了代碼:
12 23 Homme
以下是一些代碼重構后的代碼。 你可以看到它在這里工作:
pulic class exercise11
{
public static void main(String[] args)
{
try(Scanner in = new Scanner(System.in))
{
System.out.println("Mettrez votre Poids");
double Poids = in.nextDouble();
System.out.println("Mettrez votre Taille");
double Taille = in.nextDouble();
System.out.println("Mettre votre sexe");
String gender = in.next();
double sc = Math.pow(Poids, 0.425) * Math.pow(Taille, 0.725) *0.202;
if( gender.equalsIgnoreCase("Homme") )
{
double MetH = sc * 24 * 40;
System.out.println("Le Metabolisme pour un homme est: " + MetH);
}
else if( gender.equalsIgnoreCase("Femme") )
{
double MetF = sc * 24 * 35;
System.out.println("Le Metabolisme pour une femme est: " + MetF);
}
else
{
System.out.println("Vous avez entré un sexe invalide");
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.