当答案是多个条件之一时,我该怎么做才能执行代码?

What can I do to make code be executed while the answer is one of a multiple conditions?

我试图让代码在 x 时运行,由提示确定是四个答案之一。只有一种可能性它运行良好,但是当我使用 && 添加更多时,程序什么都不做。 (在程序结束时我休息一下,只执行一次代码)

这是程序工作原理的简短版本...

var x = prompt("Ready?");
while(x == "yes"){
 window.alert("...Example...");

break;
}

以及我想怎么做但行不通...

var x = prompt("Ready?")
while(x == "Yes" && x == "yes" && x == "yeS" && x == "YES")
 window.alert("...Example..."); 

break;
}

我该怎么做才能让它发挥作用?

使用||代替&&,不需要while语句,使用if代替:

var x = prompt("Ready?")
if (x === "Yes" || x === "yes" || x == "yeS" || x == "YES") {
  window.alert("...Example..."); 
}

||表示“或”,即至少有一个条件为真。如果使用“and”,则意味着所有的条件都需要为真,这不可能有效。

我会在比较之前使用 .toLowerCase(),这样您就不必处理所有不同的大写方式。

var input = prompt("Ready?");
var x = input.toLowerCase();
while( x == "yes" )
 window.alert("...Example..."); 

break;
}

然后,如果您只需要 yesno 作为选项,我会使用 window.confirm 而不是 window.prompt

编辑:嗯,如果问题是答案必须以这 4 种方式之一写成是,我会选择数组方法,以便您稍后可以添加其他选项:

var allowed_answers = [ 'yes', 'Yes', 'yeS', 'YES' ];
if ( allowed_answers.includes( x ) ) {

}

也许你正在尝试这样做

do{
  var x = prompt("Ready?").toLowerCase();
  //toLowerCase() method convert (YES, Yes, yeS, etc) to (yes)
  if(x === "yes"){
    //If the condition is true, the loop breaks
    window.alert("...Example...");
    break;    
  }
}while(true)