如何使用与IF语句关联的Math.random函数

时间:2013-11-27 17:40:22

标签: javascript html function if-statement

我试图根据函数的输出输出不同的消息,该函数使用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“示例二”

4 个答案:

答案 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!");
    }

等...