Я хочу, чтобы пользователь ввел свой ответ в игру с карандашом-ножницами в следующей строке кода.Использование логических операторов и операторов сравнения в условиях (javascript)
userChoice = prompt("Do you choose rock, paper or scissors?");
Однако, в случае, когда пользователь пишет что-то другое, чем именно «рок», «бумага» или «ножницы», он должен выбрать еще раз, что я пытался сделать этот кусок кода:
while (userChoice !== "rock" || "paper" || "scissors") {
userChoice = prompt("Invalid choice. Please change your answer.");
};
Проблема заключается в том, что программа продолжает распознавать данный ввод как недопустимый, даже если это «рок», «бумага» или «ножницы».
При наборе текста мне удалось найти решение самостоятельно.
while (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") {
userChoice = prompt("Invalid choice. Please change your answer.");
};
Таким образом, имеет смысл и первое условие, вероятно, не работает, потому что даже если вы вводите правильный ответ (например, «бумага»), она до сих пор не равно два других ответов (в этом «рок» и «ножницы»), поэтому программа продолжала говорить, что ответ был недействительным, не так ли? Или это синтаксическая ошибка? Теперь (при рабочем состоянии) выбор пользователя не должен быть ни «скалой», ни «бумагой», ни «ножницами», и поэтому он работает правильно.
Кроме того, есть ли возможно более простой и более короткий способ написания этого условия?
Примечание: Я надеюсь, что это хорошо, что части решения уже включены, как они могли бы помочь другим кодеров.
Приятное использование 'in'! И я понятия не имею, что '' 'в вашем первом примере. (собирается его искать). Любовь, когда я узнаю новые вещи от других ответов :-) – AmmarCSE
Хех, для тех, кто интересуется тем, что '' 'делает: http://stackoverflow.com/questions/12299665/what-does-a-tilde-do-when-it -precedes-an-expression – AmmarCSE
Два очень интересных решения, спасибо. :) – Maurice