生成一个1到10之间的随机数Java
我想在Java中生成1到10之间的数字。
这是我试过的:
Random rn = new Random(); int answer = rn.nextInt(10) + 1;
有没有办法告诉当调用nextInt方法和添加什么时在括号()
要放什么?
正如文档所说,这个方法调用返回“一个伪随机,均匀分布的int值在0(含)和指定的值(不含)之间”。 这意味着你会得到0到9的数字。 所以你已经做了一切正确的join一个号码。
一般来说,如果您需要从min
到max
(包括两者)生成数字,您可以编写
random.nextInt(max - min + 1) + min
标准的做法如下:
/** * Returns a psuedo-random number between min and max, inclusive. * The difference between min and max can be at most * <code>Integer.MAX_VALUE - 1</code>. * * @param min Minimim value * @param max Maximim value. Must be greater than min. * @return Integer between min and max, inclusive. * @see java.util.Random#nextInt(int) */ public static int randInt(int min, int max) { // Usually this can be a field rather than a method variable Random rand = new Random(); // nextInt is normally exclusive of the top value, // so add 1 to make it inclusive int randomNum = rand.nextInt((max - min) + 1) + min; return randomNum; }
查看相关的JavaDoc 。
正如Aurund所解释的那样,在短时间内相互创build的Random对象将倾向于产生相似的输出,所以将创build的Random对象作为一个字段而不是像我所做的一样是一个好主意仅供解释)。
资料来源: https : //stackoverflow.com/a/363692/846892
这将生成一个数字1 – 10.确保您的代码的顶部导入随机。
import java.util.Random;
如果你想testing出来,尝试这样的事情。
Random rn = new Random(); for(int i =0; i < 100; i++) { int answer = rn.nextInt(10) + 1; System.out.println(answer); }
此外,如果你改变括号中的数字,它将创build一个从0到数-1的随机数(除非你添加一个当然像你有,那么它将从1到你input的数字)。