Javascript Else If语句未计算第二个条件?

Javascript Else If语句未计算第二个条件?,javascript,if-statement,Javascript,If Statement,我正在做一个医学计算器,我想知道为什么第一个“else-if”语句没有被评估我想做的是计算“如果初始PTT小于或等于40,体重超过250,则显示“达到1000最大剂量”。它似乎只是在第一个“如果”语句和第一个“如果”语句的行上进行计算 <script type="text/javascript"> function calculate() { bodyWeight = document.getElementById("bodyWeight").value; initialPT

我正在做一个医学计算器,我想知道为什么第一个“else-if”语句没有被评估我想做的是计算“如果初始PTT小于或等于40,体重超过250,则显示“达到1000最大剂量”。它似乎只是在第一个“如果”语句和第一个“如果”语句的行上进行计算

<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;
  }

}

函数计算()
{
bodyWeight=document.getElementById(“bodyWeight”).value;
initialPTT=document.getElementById(“initialPTT”).value;
document.getElementById(“resultInfusionUnitsHr”).innerHTML=体重*初始值PTT;
//启动输液器/小时

如果(初始化PTT将您的情况更改为此

// 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;
}
//启动输液器/Hr

如果((initialPTTif语句以及if-else和else语句的工作方式是,首先计算if语句,如果为false,则转到下一个else-if和,依此类推,直到到达else语句,如果所有if和if-else语句都计算为false,则运行else语句。但是,一旦其中一个if语句计算为true,代码块在该if语句之后运行,则其他if语句是运行

让我们看看这个例子:

//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语句可以运行,而else-if语句都不能运行,因为如果initialPTT大于或等于,它们都需要initialPPT".Greater或equal是
=
而不是
,因为与每个
else if
的条件匹配的任何内容都将已被
if
语句匹配。如果希望检查所有条件,而不管之前匹配的是什么,请对每个子句使用
if
。请尝试此操作。在s中明确说明简单地说,你认为一个
if
语句有什么作用。如果你感到困惑,你可以尝试阅读文档。然后用简单的话清楚地说明你认为你的逻辑有什么作用。提示:
else
表示“else”,而不是“and if”.谢谢你,赛义德!这就成功了。我没有想到在第一句话中添加标准。欢迎你,祝你好运。如果答案有帮助,你可以接受@ChaiWhy DV?请解释。谢谢你的解释,rakan316。非常感谢。