【发布时间】:2018-04-18 03:25:56
【问题描述】:
我无法弄清楚为什么这不起作用。如果我在提示中输入“否”,我会再次得到相同的提示,这意味着 do 循环再次执行,因为 while 语句返回 true。然而,根据我的逻辑,当给出“否”的答案时,while 语句应该返回 false 并结束 do 循环。当 (answer != "Yes") 为真且 (answer != "No") 为假时,具有一个真操作数和一个假操作数的“与”运算符不应该返回假(真 && 假 == 假)吗?我在这里做错了什么?其他一切正常。
do {
var answer = prompt("Do you want dinner? Yes or No.");
} while (answer != "Yes" && "No");
if (answer == "Yes") {
alert("Great, there is food in the fridge!"); }
else {
alert("Ok. I will ask again later."); }
【问题讨论】:
-
"Yes" && "No"是做什么的? -
@PHPglue 否,
answer != "Yes" && "No"评估为假(当答案为“是”时)或“否” -
@PHPglue 我也是这么想的。但在实践中,当答案为“是”时,它似乎评估为假,但当答案为“否”时,它似乎为真
-
&&运算符不能用于列出替代值以针对!=进行测试。您的 while 条件answer != "Yes" && "No"就像是在说(answer != "Yes") && "No"。 -
@Jordan
"Yes" && "No"计算结果为"No",但您的代码不包含"Yes" && "No"作为子表达式,仅包含(answer != "Yes") && "No"。
标签: javascript