我正在尝试生成一个随机数,然后如果用户输入相同的数字,他可以继续前进,否则将生成另一个随机数字。但是生成随机num(a(的模板文字不起作用。
var a = Math.floor(Math.random()*10); // Random num generator
var userInput = alert('Enter the numbers: ${a}'); // User input
while ( userInput !== a){ // Loop
alert("Try Again!");
userInput = alert('Enter the numbers: ${a}');
};
代码中有一些地方可以改进。
- 将数字变量命名为
a
而不是n
是令人困惑的 - 在您的情况下(并非所有情况(,
Math.floor
可以短接到~~
- 用户输入来自
prompt
,而不是alert
,后者只显示一条消息 - 您使用严格相等的
!==
运算符将您的随机数与用户的输入进行比较,用户的输入将始终是String
形式的数字。因此,即使他们输入了正确的数字,也会被解释为不正确,因为'3'
并不严格等于3
。您必须使用!=
- 不需要
userInput
变量,因为您只需要使用它做一件事。只需在while
循环的条件中内联prompt
即可 - 由于
n
永远不会更改,请用const
声明它,这样,如果您以后不小心尝试更改它,就会出现一个错误,引起您的注意 - 正如有人在评论中指出的那样,字符串文字使用
`
,而不是'
const n = ~~(Math.random() * 10);
while (prompt(`Enter the number: ${n}`) != n) {
alert('Try again!');
};