Java 生成一个介于1和10之间的随机数

Java 生成一个介于1和10之间的随机数,java,random,Java,Random,我想在Java中生成一个介于1和10之间的数字 以下是我尝试过的: Random rn = new Random(); int answer = rn.nextInt(10) + 1; 调用nextInt方法时,是否有方法告诉括号中要放什么以及要添加什么 执行此操作的标准方法如下: 提供: 最小值 最大值 并返回一个介于最小值和最大值之间的整数 Random rand = new Random(); // nextInt as provided by Random is exclusiv

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

以下是我尝试过的:

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

调用nextInt方法时,是否有方法告诉括号中要放什么以及要添加什么

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

提供:

  • 最小值
  • 最大值
并返回一个介于最小值和最大值之间的整数

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;
见相关文件

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

如前所述,此方法调用返回“0(包括0)之间的伪随机、均匀分布的int值”和指定的值(独占)”。这意味着在您的情况下,您将得到从0到9的数字。所以你在这个数字上加了一个,一切都做对了

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

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

这将用于生成数字1-10。确保在代码顶部随机导入

import java.util.Random;
如果你想测试一下,试试这样的方法

Random rn = new Random();

for(int i =0; i < 100; i++)
{
    int answer = rn.nextInt(10) + 1;
    System.out.println(answer);
}
Random rn=new Random();
对于(int i=0;i<100;i++)
{
int answer=rn.nextInt(10)+1;
System.out.println(应答);
}

另外,如果您更改括号中的数字,它将创建一个从0到该数字-1的随机数(除非您添加一个与您相同的数字,否则它将从1到您输入的数字)。

您是否阅读了说明如何使用该函数的文档?@SLaks我确实阅读过,之后我仍然感到困惑。你可以把它放在你的代码中:int randomNumber=ThreadLocalRandom.current().nextInt(1,10+1);如果你想在这里看到代码检查-
Random rand=new Random()我甚至可以说它一定是一个字段<代码>随机
在短时间内创建的对象往往会产生类似的输出。在短时间内对
randInt
进行如此多的调用将无法提供均匀分布的输出。为什么在for的括号内有i<100?应该是10,它将在1-10之间生成100个数字。此答案主要重复前面的答案,而不提供新的备选答案。java.util.random请参见此处的代码-