You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

我的随机数生成代码仅输出单个数值,问题出在哪里?

问题:Math.random()始终返回相同数值?

Math.random()

我尝试修改数值,也试过移除并重新添加Math.floor,但结果始终相同。原本应该每次生成不同的数值,但无论我执行多少次代码,都只输出同一个数。

我的代码如下:

var thisIsNew = Math.floor(Math.random() * 6);

问题原因及解决办法

  • 核心问题:Math.random()仅在执行语句时生成新随机数,如果你只给thisIsNew赋值一次,后续反复输出的都是第一次生成的固定值。
    错误写法:
    var thisIsNew = Math.floor(Math.random() * 6);
    // 多次输出同一个变量,结果自然相同
    console.log(thisIsNew);
    console.log(thisIsNew);
    
    正确写法:每次需要随机数时重新调用Math.random()
    // 直接每次调用生成新值
    console.log(Math.floor(Math.random() * 6));
    console.log(Math.floor(Math.random() * 6));
    
    // 或者封装成函数,按需调用
    function getRandomNum() {
      return Math.floor(Math.random() * 6);
    }
    console.log(getRandomNum());
    console.log(getRandomNum());
    
  • 循环场景排查:如果是在循环里出现该问题,检查是否把变量定义放在了循环外部,导致仅生成一次随机数。
    错误示例:
    var thisIsNew = Math.floor(Math.random() * 6);
    for (let i = 0; i < 5; i++) {
      console.log(thisIsNew); // 始终输出同一个数
    }
    
    正确示例:
    for (let i = 0; i < 5; i++) {
      var thisIsNew = Math.floor(Math.random() * 6);
      console.log(thisIsNew); // 每次输出不同数值
    }
    

内容的提问来源于stack exchange,提问作者Achintya Pandey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 22:12:01