Javascript иначе, если заявление не оценивает второе условие? - PullRequest
0 голосов
/ 21 мая 2018

Я делаю медицинский калькулятор и задаюсь вопросом, почему не проверяется первое утверждение «иначе, если».- Я пытаюсь вычислить «если initialPTT меньше или равен 40, а вес тела более 250, а затем отобразить« Достигнута максимальная доза 1000 ».оператор «if» и первый оператор «else if».

<script type="text/javascript">
function calculate()
{
  bodyWeight = document.getElementById("bodyWeight").value;
  initialPTT = document.getElementById("initialPTT").value;

  document.getElementById("resultInfusionUnitsHr").innerHTML = bodyWeight * initialPTT;

  // Start Infusion Units/Hr
  if(initialPTT <= 40){
    document.getElementById("resultInfusionUnitsHr").innerHTML = bodyWeight * 4;
  } else if ((initialPTT <=40) && (bodyWeight > 250)){
    document.getElementById("resultInfusionUnitsHr").innerHTML = "1000 Maximum Dose Reached"; 
  } else if ((initialPTT <=40) && (initialPTT < 51)){
    document.getElementById("resultInfusionUnitsHr").innerHTML = bodyWeight * 2;  
  } else if ((initialPTT <=40) && (initialPTT < 51) && (bodyWeight > 500)){
    document.getElementById("resultInfusionUnitsHr").innerHTML = "1000 Maximum Dose Reached";  
  } else {
    document.getElementById("resultInfusionUnitsHr").innerHTML = bodyWeight * 2;
  }

}

См. на CodePen

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

способ, с помощью которого операторы if, if if и else работают, сначала выполняется оператор if, если false, переходит к следующему else if и так далее, пока не дойдет до оператора else, который выполняется if all if иесли еще заявления были оценены как ложные.Однако, как только один из операторов if оценивается как true, блок кода, следующий за этим, если оператор выполняется, затем другой оператор if not run.

давайте рассмотрим этот пример:

//given two variables a and b
if (a === true && b === true){
    // case 1
} else if (a === true && b === false){
    // case 2
} else if (a === false && b === true){
    // case 3
} else {
    // case 4
}
//soon as **any one of** the four cases above is run, the next line to run is the one that would be here, the if statements only get evaluated until the first one to be evaluated true.

поэтому в вашем коде могут выполняться только операторы if и else.ни один из остальных операторов if не может быть запущен, потому что все они требуют initialPPT <= 40. но если бы это было так, оператор if был бы для запуска.то, что вы хотите сделать, это вложенные операторы if. </p>

0 голосов
/ 21 мая 2018

Измените ваше состояние на это

// Start Infusion Units/Hr
if ((initialPTT <= 40) && (bodyWeight <= 250)) { 
  document.getElementById("resultInfusionUnitsHr").innerHTML = bodyWeight * 4;
} else if ((initialPTT <= 40) && (bodyWeight > 250)) {
  resultInfusionUnitsHr = "1000 Maximum Dose Reached";
} else if ((initialPTT <= 40) && (initialPTT < 51) && (bodyWeight < 500)) {
  document.getElementById("resultInfusionUnitsHr").innerHTML = bodyWeight * 2;
} else if ((initialPTT <= 40) && (initialPTT < 51) && (bodyWeight > 500)) {
  document.getElementById("resultInfusionUnitsHr").innerHTML = "1000 Maximum Dose Reached";
} else {
  document.getElementById("resultInfusionUnitsHr").innerHTML = bodyWeight * 2;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...