繁体   English   中英

为什么我的 else if 语句不起作用? (if 和 else 有效,但 if else 语句即使满足条件也无效)

[英]why wont my else if statement work? (the if and else work, but not the if else statement even though condition is met)

我无法使 if else 语句起作用,if 语句和 else 语句起作用,
我用输入115测试 if else 语句,它不起作用,
但是如果我输入135 ,if 语句就可以正常工作。
我需要帮助来修复 if else 语句!!

 var start = button.addEventListener("click", function() { var lbs = input.value - 45 /*weight without the bar*/ var add = 0 var plates45 = 0 var plates35 = 0 while (lbs.= add) { if ((add += 90) <= lbs) { plates45 += 2 add += 90 forty:innerHTML = "45lbs. " + plates45 } else if ((add += 70) <= lbs) { plates35 += 2 add += 70 thirty:innerHTML = "35lbs: " + plates35 } else { add = lbs /*to prevent infinte loop*/ } } })
 <h1 id="header">Plate Helper</h1> <div id="container1"> <p id="weight">Weight</p> <input type="text" id="input"> </div> <div id="blue"> <button id="button">Calculate</button> </div> <div id="container2"> <center> <p id="result">Plates Needed</p> <div id="forty"> <p id="forty_plate">45lbs: </p> </div> <div id="thirty"> <p id="thirty_plate">35lbs: </p> </div> <div id="twenty"> <p id="twenty_plate">25lbs: </p> </div> <div id="ten"> <p id="ten_plate">10lbs: </p> </div> <div id="five"> <p id="five_plate">5lbs: </p> </div> <div id="two"> <p id="two_plate">2.5lbs: </p> </div> </center>

我在每次测试之前刷新页面,所以我认为第一个 if 语句不会影响 if else 语句的条件

它不起作用的原因是 if 语句中的 += 运算符。 第一个if ((add += 90) <= lbs){首先将 90 添加到add然后检查 add 是否小于 lbs。 然后当它到达if ((add += 70) <= lbs){时, add已经是 90,所以它加上 70 (=160) 并检查它是否小于 lbs。 因此,解决方案将是仅在条件为真时添加数量(70 或 90)(即替换+= in if if ((add +=... to +但将块内的行保留为 qay)。

附带说明一下,在 else 子句中跳出循环的另一种方法是使用break关键字。

Ps 你来自 Python 背景?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM