let q;
while ((q !== "yes")||(q !== "no")) {
q = prompt("yes or no?");
}
我已经尝试过这个,我不明白为什么它不起作用,因为这个:
while (q !== "yes") {
q = prompt("yes or no?");
}
工程。
呃,看来你用了
while ((q !== "yes")||(q !== "no"))
这将始终转换为true
因为 q 不能同时是"是"和"否",因此它将始终计算为 true。条件应该是
while ((q !== "yes") && (q !== "no"))
表达式
(q !== "yes")||(q !== "no")
永远是真实的,因为q
不可能同时yes
和no
。如果满足任一条件,则该while
将是真实的,并且循环将继续。
请改用&&
:
(q !== "yes") && (q !== "no")
或者,更易读的是,使用.includes
:
while (!['yes', 'no'].includes(q)) {
let q;
while (!['yes', 'no'].includes(q)) {
q = prompt("yes or no?");
}