我正在努力学习js。所以,为了学习,我想写一个小游戏,石头,剪刀,布。现在我想做一个提示符(),用户必须输入他想要选择的东西。但如果他没有写出3种可能的答案(石头、剪刀、布),他必须再做一次。
我的代码到目前为止:
function validateUserChoice() {
var localUserChoi = prompt("Please choose rock, paper or scissors");
while (localUserChoi != "rock" || localUserChoi != "paper" || localUserChoi != "stone") {
alert("You have to type one of the words: rock, paper, scissors");
localUserChoi = prompt("Bitte geben Sie rock, paper oder scissors ein");
}
userChoice = localUserChoice;
}
我知道while循环的条件是错误的,但是我必须在里面写什么?
干杯塞巴斯蒂安。
这行得通:
var answer = '';
var options = ['rock', 'paper', 'scissors'];
while (!~options.indexOf(answer)) {
answer = prompt('Please choose: "'+ options.join(', ') +'"');
};
解释:默认情况下,answer
不匹配任何数组值,因此prompt
在while循环中完成。当它与数组(0、1或2)的索引匹配后,索引被转换为:
~ =将索引加1,然后取负值,使0为-1,计算结果为
true
!=将其转换为相反的布尔值(其中true变为false以退出while循环)。