2 回答
TA贡献1735条经验 获得超5个赞
并且位于之前或优先 - 所以你在第一个 if 中所拥有的实际上是(注意周围的括号(symptoominv1 == "hoofdpijn" && symptoominv2 == "koorts")
:
(symptoominv1 == "koorts" || symptoominv1 == "keelpijn" || symptoominv1 == "vermoeidheid" || symptoominv1 == "diarree" || (symptoominv1 == "hoofdpijn" && symptoominv2 == "koorts") || symptoominv2 == "keelpijn" || symptoominv2 == "vermoeidheid" || symptoominv2 == "diarree" || symptoominv2 == "hoofdpijn")
因此,只有“或”之一需要为真,代码才能进入 if 而不会继续执行其余语句。使用括号确保顺序符合您的预期:
if ((symptoominv1 == "koorts" || symptoominv1 == "keelpijn" || symptoominv1 == "vermoeidheid" || symptoominv1 == "diarree" || symptoominv1 == "hoofdpijn") && (symptoominv2 == "koorts" || symptoominv2 == "keelpijn" || symptoominv2 == "vermoeidheid" || symptoominv2 == "diarree" || symptoominv2 == "hoofdpijn"))
对于第一个和第二个 else 也是如此,如果:
else if ((symptoominv1 != "koorts" || symptoominv1 != "keelpijn" || symptoominv1 != "vermoeidheid" || symptoominv1 != "diarree" || symptoominv1 != "hoofdpijn") && (symptoominv2 == "koorts"|| symptoominv2 == "keelpijn" || symptoominv2 == "vermoeidheid" || symptoominv2 == "diarree" || symptoominv2 == "hoofdpijn"))
else if((symptoominv1 == "koorts" || symptoominv1 == "keelpijn" || symptoominv1 == "vermoeidheid" || symptoominv1 == "diarree" || symptoominv1 == "hoofdpijn") && (symptoominv2 != "koorts" || symptoominv2 != "keelpijn" || symptoominv2 != "vermoeidheid" || symptoominv2 != "diarree" || symptoominv2 != "hoofdpijn"))
TA贡献1936条经验 获得超6个赞
首先,“IF”和它的“ELSE IF”应用了相同的条件,因为代码是逐行编译的,因此 JavaScript 会得到 IF 语句中满足的条件,这就是为什么它永远不会检查 else if 条件。
添加回答
举报