Javascript代码陷入无休止的“do-while”循环

Javascript代码陷入无休止的“do-while”循环,javascript,loops,do-while,Javascript,Loops,Do While,我正在使用Javascript开发一个带有表单验证的测验应用程序。我试图这样做,如果用户输入的答案不是选项,代码会告诉用户请输入正确的答案,程序会循环回到问题的开头。按照现在编写代码的方式,即使输入是可选择的选项,也会在输入后循环回到问题的开头。我假设我的do while循环有问题,不管它的格式是否不正确,还是与循环有关,条件都会导致无限循环。我很难找出问题所在,因此希望您能提供帮助 您需要修正您的比较,不希望选择的问题是a或b': let score = 0; let question1 =

我正在使用Javascript开发一个带有表单验证的测验应用程序。我试图这样做,如果用户输入的答案不是选项,代码会告诉用户请输入正确的答案,程序会循环回到问题的开头。按照现在编写代码的方式,即使输入是可选择的选项,也会在输入后循环回到问题的开头。我假设我的do while循环有问题,不管它的格式是否不正确,还是与循环有关,条件都会导致无限循环。我很难找出问题所在,因此希望您能提供帮助

您需要修正您的比较,不希望选择的问题是a或b':

let score = 0;
let question1 = "";


do{
    question1 = prompt("In Empire Strikes Back, which one of luke's hand is cut off by Darth Vader? (a) Left (b) Right");
        switch(question1.toLowerCase()){
            case "a":
                alert("Sorry that's incorrect");
                break;
            case "b":
                alert("That's correct!");
                score+=1;
                break;
            default:
                alert("That answer wasn't an option, please select one of the options listed");
        }
}
while(question1 != "a" && question1 != "b");

因为b是真实的。。。另外,您不需要测试多个值,就像这样。。。最后,与不平等,你想和不或。。。自从x!=1 | | x!=2总是正确的,因为x不能同时为2,所以它总是不等于其中的一个。你必须比较每一个。问题!=a&&问题!=B可能的复制品,不知道是否等效!问题1==a | |问题1==b对于OP来说更容易理解:ptrue dat@ggorlen-但我的建议是关于布尔逻辑-我认为有些人在表达式中不止一个不存在时会遇到问题,所以我让表达式只有一个布尔NOT我听到了,我只是赶在~['a','b'之前赶时髦.indexOfquestion1用户从另一个线程到达:-