277

我想在特定范围内生成随机数。(例如,范围在 65 到 80 之间)

我按照下面的代码尝试,但它不是很充分。它还返回大于最大值的值。值(大于 80)。

Random r = new Random();
int i1 = (r.nextInt(80) + 65);

如何在范围之间生成随机数?

4

2 回答 2

515
Random r = new Random();
int i1 = r.nextInt(80 - 65) + 65;

这给出了一个介于 65(含)和 80(不含)之间的随机整数,其中之一65,66,...,78,79

于 2011-05-17T10:29:40.280 回答
308
int min = 65;
int max = 80;

Random r = new Random();
int i1 = r.nextInt(max - min + 1) + min;

请注意,nextInt(int max)返回一个int介于 0 (包括)和最大不包括在内的值。因此+1.

于 2011-05-17T10:29:35.083 回答