【发布时间】:2015-12-29 18:36:16
【问题描述】:
我希望用户在下面这行代码中输入他在石头剪刀布游戏中的答案。
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.");
};
这种方式确实有意义,第一个条件可能不起作用,因为即使你输入了正确的答案(例如“paper”),它仍然不等于其他两个答案(在这种情况下“石头”和“剪刀”),这就是为什么程序一直说答案无效的原因,对吧?还是语法错误? 现在(在工作条件下),用户的选择必须既不是“石头”,也不是“纸”,也不是“剪刀”,因此它可以正常工作。
另外,是否有一种更简单、更简短的方式来编写该条件?
注意:我希望解决方案的某些部分已经包含在内,因为它们可以帮助其他编码人员。
【问题讨论】:
标签: javascript comparison conditional logical-operators comparison-operators