2013-11-27 55 views
1

我想基于函数的一个使用的Math.random函数生成1和4如何关联使用的Math.random功能使用IF语句

之间的数字输出输出不同的消息
function roll() 
{ 
return Math.floor(Math.random()*4+1) 
} 

当按下按钮时,函数被调用并且一个全局变量'a'被分配给滚动函数的结果。

var a; 
function buttonPressed() { 
roll() 
a = roll() 
answertq = (x*y); 

以下代码基本上意味着,如果用户提供了答案框答案是正确的,那么,这取决于辊函数输出一个不同的信息如下面的结果。

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函数有问题,因为它将1赋给全局变量'a'或其他我没有发现的东西。任何帮助将非常感激。我提供了以下两个问题的截图。

[1] http://imgur.com/riFktIH “例一” [2] http://imgur.com/YjcmuRx “例二”

+0

请了解['开关(){}'声明】(https://developer.mozilla.org/en-US /文档/网络/的JavaScript /参考/语句/开关)。 –

+0

另一种方法是将消息存储在一个数组中,并用一个随机索引访问它:var success_msgs = [“Correct”,“You got it”,...]',后面紧跟着'success_msg [roll()]''。 – apsillers

回答

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

谢谢你的帮助!它现在完美。我没有意识到两者之间有区别。 – Skywhisky

+0

@Skywhisky: - 不客气!附:还请阅读有关开关: - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch –

0
所有

您的:

试试这个

if (parseInt(document.getElementById("inputVal").value) == answertq) { 
    if (a==1) { 
     window.alert("Very good!"); 
    } 

等等

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”

+0

这是一个伟大的方式做到这一点,但我努力实现它到我的自己的节目。但非常感谢你的帮助。 – Skywhisky