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

如何在Java中生成指定数量、指定范围内的随机数

代码问题修复说明

数量错误问题

原代码循环逻辑存在两处冗余加1操作:

  • 定义ListSize时执行了ListSize = intInput3 + 1
  • 循环判断使用了i <= ListSize
    最终循环次数为输入数量 + 2,比如输入3个,实际循环5次,和输出数量异常情况吻合。
    修复方式:直接使用输入的数量作为循环终止条件即可,无需额外计算ListSize。

区间错误问题

Random.nextInt(n)方法的返回值范围是[0, n),即从0开始到n-1的整数,原代码仅传入了区间长度作为入参,未叠加区间起始值,因此生成的数值永远从0开始。比如要生成5-10的数值,实际只会返回0-5的结果,和区间异常情况吻合。
修复方式:生成随机数后叠加区间起始值intInput1。

优化说明

原代码将lstNumbers.setModel(fill)放在循环内执行,每次新增元素都会触发列表刷新,可移到循环外执行,减少不必要的性能开销。额外新增fill.removeAllElements()逻辑,避免多次点击生成时累积历史结果。

修正后代码

private void jFillActionPerformed(java.awt.event.ActionEvent evt) {                                      
    int intInput1 = Integer.parseInt(txtInput1.getText());
    int intInput2 = Integer.parseInt(txtInput2.getText());
    int intInput3 = Integer.parseInt(txtInput3.getText());

    Random rnd = new Random();
    // 清空历史结果
    fill.removeAllElements();
    for (int i = 0; i < intInput3; i++) {
        int RandomNumber = rnd.nextInt((intInput2 - intInput1) + 1) + intInput1;
        fill.addElement(RandomNumber);
    }
    // 全部生成完成后再更新列表
    lstNumbers.setModel(fill);
}

内容的提问来源于stack exchange,提问作者Joalize Minnaar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:39:04