Javascript 显示小于0.8的随机数无法正常工作

Javascript 显示小于0.8的随机数无法正常工作,javascript,Javascript,嗨,我对JS有点陌生,所以我试着这么做,我做这个是为了测试随机函数,我只想显示0.8以下的随机数,但有时它在0.8以上也会连续显示多次,我如何修复它? 这是我在这里的第一篇帖子,如果我做错了什么,我很抱歉。 谢谢 函数rn{ var a=数学随机变量 归还 } 函数写入器{ 变量x=0 而x

嗨,我对JS有点陌生,所以我试着这么做,我做这个是为了测试随机函数,我只想显示0.8以下的随机数,但有时它在0.8以上也会连续显示多次,我如何修复它? 这是我在这里的第一篇帖子,如果我做错了什么,我很抱歉。 谢谢

函数rn{ var a=数学随机变量 归还 } 函数写入器{ 变量x=0 而x<100{ 如果rn<0.8{ document.writern+ } 如果rn>0.8{ x=100 } x++ } } // document.getElementById11.innerHTML=writerandon 经验 您的代码进行两次随机数调用,每个调用可能具有不同的值。修复方法是使用else确保只触发一个分支:

    let n = Math.random();
    if (n < 0.8) {
        document.write(n + "<br>")
    }
    else {
        x = 100
    }
将Math.random包装在函数中并不意味着它只触发一次。对rn的每次调用都将返回一个新值。每次函数调用都会重新初始化局部变量a。它不会在两次调用之间保持不变

在原始代码中,大约16%的时间80%x20%您会侥幸逃脱并触发两个分支。

您的代码会进行两个随机数调用,每个调用的值可能不同。修复方法是使用else确保只触发一个分支:

    let n = Math.random();
    if (n < 0.8) {
        document.write(n + "<br>")
    }
    else {
        x = 100
    }
将Math.random包装在函数中并不意味着它只触发一次。对rn的每次调用都将返回一个新值。每次函数调用都会重新初始化局部变量a。它不会在两次调用之间保持不变


在原始代码中,大约16%的时间(80%x20%)会侥幸跳出并触发两个分支。

将返回值赋给一个变量,以便在不同的条件下保持相同的值

函数rn{ var a=数学随机变量 归还 } 函数写入器{ 变量x=0 而x<100{ 常数随机数=rn; 如果随机数<0.8{ document.writerandomNumber+ } 如果随机数>0.8{ x=100 } x++ } } //
document.getElementById11.innerHTML=writerandon将返回值分配给变量,以便在不同条件下保持相同的值

函数rn{ var a=数学随机变量 归还 } 函数写入器{ 变量x=0 而x<100{ 常数随机数=rn; 如果随机数<0.8{ document.writerandomNumber+ } 如果随机数>0.8{ x=100 } x++ } } //
document.getElementById11.innerHTML=writerandon问题在于您调用的是rn multiple,每次它都返回不同的数字。在if中测试的结果与在document.write中显示的结果不同,或者与在第二个if中测试的结果不同

您需要将数字保存到变量中,以便可以测试和显示相同的数字

另外,如果您想在上一次测试失败时执行某些操作,请使用else

函数rn{ var a=数学随机变量 归还 } 函数写入器{ 变量x=0 而x<100{ var num=rn; 如果num<0.8{ document.getElementByIdbd.innerHTML+=num+ }否则{ 打破 } x++ } } // document.getElementById11.innerHTML=writerandon 经验
问题是您调用的是rn multiple,每次它都返回不同的号码。在if中测试的结果与在document.write中显示的结果不同,或者与在第二个if中测试的结果不同

您需要将数字保存到变量中,以便可以测试和显示相同的数字

另外,如果您想在上一次测试失败时执行某些操作,请使用else

函数rn{ var a=数学随机变量 归还 } 函数写入器{ 变量x=0 而x<100{ var num=rn; 如果num<0.8{ document.getElementByIdbd.innerHTML+=num+ }否则{ 打破 } x++ } } // document.getElementById11.innerHTML=writerandon 经验
为什么在单个函数调用周围有一个包装函数?这会适得其反,也会模糊你的实际行动。Idk我只是在测试,我是JS的新手,现在你说了,这很有意义,也谢谢你的编辑。新手和学习没什么错。这就是我们在这里的目的。为什么在单个函数调用周围有一个包装函数?这会适得其反,也会模糊你的实际行动。Idk我只是在测试,我是JS的新手,现在你说了,这很有意义,也谢谢你的编辑。新手和学习没什么错。这就是我们来这里的目的。而且我认为这里不需要document.write。@Pointy哇,又一个电话。感谢您指出out.document.getElementById11.innerHTML=writerandon这不就是简单地将未定义的放入h1吗?我看不到writerandon做任何显式返回。@connexo可能,但那是一个完全不同的问题。谢谢,yall回答得很好,现在我明白了为什么
snt工作,而且我对这个社区的工作方式印象深刻,它真的很快。另外,我几天前开始学习JS我还认为这里不需要document.write。@Pointy哇,另一个电话。感谢您指出out.document.getElementById11.innerHTML=writerandon这不就是简单地将未定义的放入h1吗?我看不到writerandon做任何显式返回。@connexo可能,但那是一个完全不同的问题。谢谢,yall回答得很好,现在我明白了为什么没有工作,而且我对这个comunity的工作方式印象深刻,它真的很快。另外,我几天前开始学习JS谢谢,雅尔回答得很好,现在我明白了为什么不工作了,而且我对这个社区的工作方式印象深刻,它真的很快。另外,我几天前开始学习JS谢谢,雅尔回答得很好,现在我明白了为什么不工作了,而且我对这个社区的工作方式印象深刻,它真的很快。另外,我几天前开始学习JS谢谢,雅尔回答得很好,现在我明白了为什么不工作了,而且我对这个社区的工作方式印象深刻,它真的很快。另外,我几天前开始学习JS谢谢,雅尔回答得很好,现在我明白了为什么不工作了,而且我对这个社区的工作方式印象深刻,它真的很快。另外,我几天前开始学习JS