猿问

为什么第二个 else if 语句不执行,而是执行第一个?

我有一个问题,当满足要求时执行第二个 else if 语句。它执行第一个“if”语句?我不知道为什么它不起作用。它执行checkleeftijd1();而不是checkleeftijd5();


先感谢您!


function controle1() {

    let symptoominv1 = document.getElementById("symptoominv1").value;

    let symptoominv2 = document.getElementById("symptoominv2").value;

    let symptoominv3 = document.getElementById("symptoominv3").value;


    if (symptoominv1 == "koorts" || symptoominv1 == "keelpijn" || symptoominv1 == "vermoeidheid" || symptoominv1 == "diarree" || symptoominv1 == "hoofdpijn" && symptoominv2 == "koorts"|| symptoominv2 == "keelpijn" || symptoominv2 == "vermoeidheid" || symptoominv2 == "diarree" || symptoominv2 == "hoofdpijn"){

        if (symptoominv3 == "koorts" || symptoominv3 == "keelpijn" || symptoominv3 == "vermoeidheid" || symptoominv3 == "diarree" || symptoominv3 == "hoofdpijn"){

            checkleeftijd1();

        }else {

            checkleeftijd2();

        }

    }else if (symptoominv1 != "koorts" || symptoominv1 != "keelpijn" || symptoominv1 != "vermoeidheid" || symptoominv1 != "diarree" || symptoominv1 != "hoofdpijn" && symptoominv2 == "koorts"|| symptoominv2 == "keelpijn" || symptoominv2 == "vermoeidheid" || symptoominv2 == "diarree" || symptoominv2 == "hoofdpijn") {

        if (symptoominv3 == "koorts" || symptoominv3 == "keelpijn" || symptoominv3 == "vermoeidheid" || symptoominv3 == "diarree" || symptoominv3 == "hoofdpijn"){

            checkleeftijd3();

        }else {

            checkleeftijd4();

        }


缥缈止盈
浏览 157回答 2
2回答

喵喔喔

并且位于之前或优先 - 所以你在第一个 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"))

LEATH

首先,“IF”和它的“ELSE IF”应用了相同的条件,因为代码是逐行编译的,因此 JavaScript 会得到 IF 语句中满足的条件,这就是为什么它永远不会检查 else if 条件。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答