java在1和10之间生成一个随机数

Generating a Random Number between 1 and 10 Java

本问题已经有最佳答案,请猛点这里访问。

我想在爪哇1到10之间生成一个数字。

以下是我的尝试:

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

在调用nextint方法时,有没有一种方法可以告诉我们在括号中放些什么和添加什么?


如文档所述,此方法调用返回"一个伪随机、均匀分布的int值,介于0(包含)和指定值(不包含)之间"。这意味着在您的案例中,您将获得从0到9的数字。所以你在这个数字上加了一个,一切都做对了。

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

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


标准方法如下:

提供:

  • 最小最小值
  • 最大值

get-in返回一个介于min和max之间的整数,包括min和max。

1
2
3
4
5
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所解释的,在短时间内创建的随机对象往往会产生类似的输出,因此最好将创建的随机对象保留为字段,而不是方法。


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

1
import java.util.Random;

如果你想测试一下,试试这个。

1
2
3
4
5
6
7
Random rn = new Random();

for(int i =0; i < 100; i++)
{
    int answer = rn.nextInt(10) + 1;
    System.out.println(answer);
}

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