Я пытаюсь создать программу JavaScript, которая предлагает пользователю «ввести да или нет, чтобы выйти» - PullRequest
1 голос
/ 21 октября 2019
let q;

while ((q !== "yes")||(q !== "no")) {
  q = prompt("yes or no?");
}

Я пробовал это, и я не мог понять, почему это не будет работать, так как это:

while (q !== "yes") {
  q = prompt("yes or no?");
}

работает.

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Э-э, похоже, что вы использовали

while ((q !== "yes")||(q !== "no"))

Это всегда будет переводиться в true, поскольку q не может быть и "да", и "нет", оно всегда будет иметь значение true. Условие должно быть

while ((q !== "yes") && (q !== "no"))
0 голосов
/ 21 октября 2019

Выражение

(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?");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...