生成 1 到 10 之间的随机数 Java

2022-08-31 06:04:49

我想在Java中生成一个介于1和10之间的数字。

这是我尝试过的:

Random rn = new Random();
int answer = rn.nextInt(10) + 1;

有没有办法告诉在调用 nextInt 方法时要在括号中放入什么以及要添加什么?()


答案 1

文档所述,此方法调用返回“一个伪随机,均匀分布的int值,介于0(包括)和指定值(独占)之间”。这意味着在您的案例中,您将获得从0到9的数字。因此,通过在该数字上添加一个,您已经正确完成了所有操作。

一般来说,如果您需要从到(包括两者)生成数字,您可以编写minmax

random.nextInt(max - min + 1) + min

答案 2

执行此操作的标准方法如下:

提供:

  • 最小最小值
  • 最大 最大值

并返回一个介于最小值和最大值之间的整数(包括最大值)。

Random rand = new Random();

// nextInt as provided by Random is exclusive of the top value so you need to add 1 

int randomNum = rand.nextInt((max - min) + 1) + min;

请参阅相关的 JavaDoc

正如Aurund所解释的那样,在短时间内创建的随机对象往往会产生类似的输出,因此最好将创建的随机对象保留为字段,而不是在方法中。


推荐