我想比较用户使用提示符引入的两个字符串。
如果我这样做 (bar ==" yes" || bar ==" no")
它可以正常工作,但如果我使用!==
(bar!==" yes" || bar!==" no")
程序总是返回
提醒("第二个值必须是\'是\'或\'没有'");
即使我将是或否作为第二个值引入。
do{
var values = window.prompt("Introduce a title, and \'yes\' o \'no\' separted with a comma.");
var longValues = values.length;
var comma = values.indexOf(",");
var title = values.substr(0,comma);
var bar = values.substr(comma+1,longValues);
var longTitle = title.length;
if (longTitle <3 || longTitle >30){
alert("The title must be greater than 3 characters and less than 30 characters");
}
else if (bar !== "yes" || bar !== "no"){
alert("The second value must be \'yes\' or \'no\'");
}
else{
alert("Correct!");
}
}while((longTitle <3 || longTitle >30) && (bar !=="yes" || bar !=="no"))
答案 0 :(得分:3)
您的病情需要是AND而不是OR。变化
if (bar !== "yes" || bar !== "no")
到
if (bar !== "yes" && bar !== "no")
如果您使用OR,则在bar
不等于yes
或bar
不等于no
时,您会询问代码。如果bar
的值为yes
,则第一个条件为false
,但第二个条件为true
,因此结果为true
。如果bar
为no
,则同样有效 - 在这种情况下,第一个条件为true
,第二个条件为false
,因此结果也为true
。< / p>
您想要的是在bar
不是yes
时以及bar
不是no
时执行代码。