gpt4 book ai didi

javascript - Math.floor(Math.random() * 5 + 1) 的操作顺序?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:47 24 4
gpt4 key购买 nike

在 Code Academy JS 类(class) Dragon Slayer 2/6 中,提示中使用了以下文本来描述我在标题中包含的代码的操作顺序。

How does this code work?

Math.floor(Math.random() * 5 + 1);

  • First we use Math.random() to create a random number from 0 up to 1. For example, 0.5

  • Then we multiply by 5 to make the random number from 0 up to 5. For >example, 0.5 * 5 = 2.5

  • Next we use Math.floor() to round down to a whole number. For example, >Math.floor( 2.5 ) = 2

  • Finally we add 1 to change the range from between 0 and 4 to between 1 and >5 (up to and including 5)

我在几个不同的地方( herehere )查过这个,其中大部分要么关注 Math.random() 产生的范围(据我所知),要么确认提示中概述的操作,其中“Math.floor”在添加“+1”之前作用于“Math.random()*5”。

然而,在我看来,根据我在学校学到的操作顺序,最后两步应该翻转过来。既然“Math.random()*5”和“+ 1”都在括号内,情况会不会如此?

虽然这两者之间的差异可能不会对该特定代码返回的值产生影响,但我可以看到操作顺序的根本变化,就像这里概述的那样,如果我不知道。

最佳答案

Math.floor() 将在计算后对括号内的任何内容起作用。

Math.floor(Math.random() * 5 + 1)

相同
var i = Math.random() * 5;
i += 1;
Math.floor(i);

关于javascript - Math.floor(Math.random() * 5 + 1) 的操作顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34192390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com