Вы можете сделать оператор if после оператора if? - PullRequest
0 голосов
/ 09 февраля 2019

Мой калькулятор BMR не дает мне правильного результата, я знаю, если я вычеркну цикл if, который проверяет активность, правильный ответ, но я не могу найти то, что нужно изменить

double doubleweight = Double.parseDouble(Weight);
double doubleage = Double.parseDouble(Age);
double doubleheight = Double.parseDouble(Height);

double BMRm, BMRf;
BMRm = 66 + (6.23 * doubleweight) + (12.7 * doubleheight) - (6.8 * doubleage);
BMRf = 655 + (4.35 * doubleweight) + (4.7 * doubleheight) - (4.7 * doubleage);

double bmr;
if ((null != Gender) && "Female".equals(Gender)){
bmr=BMRf;
}
else{
    bmr=BMRm;
}

if ("sed".equals(Activity)){
    bmr=(bmr*1.2);
}
else if("lightact".equals(Activity)){
    bmr=(bmr*1.375);
}
else if("modact".equals(Activity)){
    bmr=(bmr*1.55);
}
else if("vact".equals(Activity)){
    bmr=(bmr*1.725);
}
else{
    bmr=(bmr*1.9);
}

1 Ответ

0 голосов
/ 09 февраля 2019

Вам лучше использовать оператор case , который является более простым , очень полезным, особенно при попытке кодирования калькулятора:

switch  (Activity) {
    case "sed" : bmr=(bmr*1.2);
    case "lightact" : bmr=(bmr*1.375);
    case "modact" : bmr=(bmr*1.55);
    case "vact" : bmr=(bmr*1.725);
    default: bmr=(bmr*1.9);
}

Для передового опыта,имена атрибутов лучше начинать со строчных букв:

double bmrm = 66 + (6.23 * doubleweight) + (12.7 * doubleheight) - (6.8 * doubleage);
double bmrf = 655 + (4.35 * doubleweight) + (4.7 * doubleheight) - (4.7 * doubleage);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...