【问题标题】:Why does int answer = generator.nextInt(10) + 1; only produce numbers between 1 and 10?为什么 int answer = generator.nextInt(10) + 1;只产生 1 到 10 之间的数字?
【发布时间】:2016-04-18 05:34:42
【问题描述】:

我不明白为什么它不会生成超过 11 个。

这是我的测试代码:

import java.util.Random;

public class randomNumberTest
{
    public static void main(String[] args)
    {
         Random rn = new Random();
         //tests random number generator (between 1(inc) and 10(excl))
         for(int i =0; i < 100; i++)
         {
             int answer = rn.nextInt(10) + 1;
             System.out.println(answer);
         }
    }
}

【问题讨论】:

  • 您是否阅读了您所调用方法的文档?您自己的代码中的注释说上限是排他性的(“excl”)......如果nextInt(10) 只能返回一个最大为 9 的值,并且您要加 1,您将如何期望得到 11 的答案到那个?
  • 是的,我现在意识到我犯了一个愚蠢的错误。我确实读过它,但由于某种原因它没有沉入其中。很抱歉发了不好的帖子。
  • @SeanM - 如果您认为这是一篇糟糕的帖子,您可以随时使用问题下方的链接将其删除。欢迎使用 StackOverflow!
  • 感谢您的热烈欢迎啊哈哈。我有很多要学习的!不幸的是,我不能再删除它了。

标签: java random next


【解决方案1】:

阅读 Javadoc。 rn.nextInt(10) 生成从 0 到 9 的数字。加 1 得到从 1 到 10 的范围。

返回一个伪随机、均匀分布的 int 值,介于 0(包括)和指定值 (不包括)

【讨论】:

    猜你喜欢
    • 2021-02-11
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2013-12-21
    • 1970-01-01
    • 2012-04-01
    相关资源
    最近更新 更多