Javascript 如何将Math.random函数与IF语句关联使用
我试图根据一个函数的输出输出不同的消息,该函数使用math.random函数生成一个介于1和4之间的数字Javascript 如何将Math.random函数与IF语句关联使用,javascript,html,function,if-statement,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); 下面的代码本质上意味着,如果用户在应答框中提供的应答是正确的,则
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] 例一
[2] 示例二您需要比较a==1而不是分配a=1您需要比较a==1而不是分配a=1
除了当我这样做的时候,我总是得到第一个非常好的回答
好的每次问题都是正确的
原因是您没有比较正在分配的值。==用于比较,=用于赋值
试试这个:
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");
}
除了当我这样做的时候,我总是得到第一个非常好的回答
好的每次问题都是正确的
原因是您没有比较正在分配的值。==用于比较,=用于赋值
试试这个:
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");
}
所有if语句都使用赋值运算符=而不是比较运算符=:
if (parseInt(document.getElementById("inputVal").value) == answertq) {
if (a==1) {
window.alert("Very good!");
}
等等。所有if语句都使用赋值运算符=而不是比较运算符=:
if (parseInt(document.getElementById("inputVal").value) == answertq) {
if (a==1) {
window.alert("Very good!");
}
等等。为什么不使用数组来显示消息? 这样,您就可以使用随机数作为数组的索引
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,为什么不使用数组来处理消息呢? 这样,您就可以使用随机数作为数组的索引
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谢谢您的帮助!它现在工作得很好。我没有意识到两者之间有区别。@Skywhisky:-不客气!另外,请务必阅读有关交换机的信息:-谢谢您的帮助!它现在工作得很好。我没有意识到两者之间有区别。@Skywhisky:-不客气!另请阅读开关:-请了解。另一种方法是将消息存储在数组中,并使用随机索引访问它:var success\u msgs=[正确,您得到了,…]后跟success\u msg[roll]。请了解。另一种方法是将消息存储在数组中,并使用随机索引进行访问:var success_msgs=[正确,您找到了,…]后跟success_msg[roll]。这是一种很好的方法,但我正在努力将其实现到自己的程序中。但是谢谢你的帮助,非常感谢。这是一个很好的方法,但是我正在努力将它应用到我自己的程序中。但是谢谢你的帮助,非常感谢。