Вы дважды звоните 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
, он выполнит правильный расчет.Я также удалил лишние Scanner
, которые вы использовали под названием Gender
, и просто повторно использовал 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);
}
}
}