我试图根据函数的输出输出不同的消息,该函数使用math.random函数生成1到4之间的数字。
function roll()
{
return Math.floor(Math.random()*4+1)
}
按下按钮时,调用该函数,并将全局变量“a”分配给滚动功能的结果。
var a;
function buttonPressed() {
roll()
a = roll()
answertq = (x*y);
以下代码实质上意味着如果用户在答案框中提供的答案是正确的,那么根据roll函数的结果输出不同的消息,如下所示。
if (parseInt(document.getElementById("inputVal").value) == answertq)
{
if (a=1)
{
window.alert("Very good!");
}
else if (a=2)
{
window.alert("Excellent!");
}
else if (a=3)
{
window.alert("Correct, Nice work");
}
else if (a=4)
{
window.alert("Correct - Keep up the good work");
}
}
除非我这样做,每次问题正确时,我总会收到第一个回复(“非常好!”)。意味着roll函数有问题,因为它不断地为全局变量'a'或其他我没有发现的东西分配1。任何帮助将非常感激。我在下面提供了两个问题的截图。
[1] http://imgur.com/riFktIH“示例一” [2] http://imgur.com/YjcmuRx“示例二”
答案 0 :(得分:2)
除了当我这样做时,我总是得到第一个回应(“非常 好的!“)每次问题都是正确的。
原因是您没有比较要分配的值。 ==
用于比较,=
用于分配。
试试这个:
if (a==1)
{
window.alert("Very good!");
}
else if (a==2)
{
window.alert("Excellent!");
}
else if (a==3)
{
window.alert("Correct, Nice work");
}
else if (a==4)
{
window.alert("Correct - Keep up the good work");
}
答案 1 :(得分:1)
您需要比较a==1
而不是a=1
答案 2 :(得分:1)
为什么不为邮件使用数组? 这样你可以使用随机数作为数组的索引。
var msg = [
"Very good!",
"Excellent!",
"Correct, Nice work",
"Correct - Keep up the good work"
];
function randomMsg (){
var random = Math.floor(Math.random() * 4);
alert(msg[random]);
}
编辑:数组基于零,因此没有“+1”
答案 3 :(得分:0)
所有if语句都使用赋值运算符“=”而非比较运算符“==”:
if (parseInt(document.getElementById("inputVal").value) == answertq) {
if (a==1) {
window.alert("Very good!");
}
等...