Java 随机整数-正整数和负整数
我想知道如何获得integer.MIN_值和integer.MAX_值之间的随机整数。我确实试过:Java 随机整数-正整数和负整数,java,random,integer,Java,Random,Integer,我想知道如何获得integer.MIN_值和integer.MAX_值之间的随机整数。我确实试过: int min = Integer.MIN_VALUE; int max = Integer.MAX_VALUE; Random rand = new Random(); StartVärde = rand.nextInt(max - min + 1) + min; 请注意,我已经导入了java.util.Random,“StartVärde”只是我创建的一个变量。现在,上面的代码给出以下错
int min = Integer.MIN_VALUE;
int max = Integer.MAX_VALUE;
Random rand = new Random();
StartVärde = rand.nextInt(max - min + 1) + min;
请注意,我已经导入了java.util.Random,“StartVärde”只是我创建的一个变量。现在,上面的代码给出以下错误消息:
Exception in thread "main" java.lang.IllegalArgumentException: n must be positive
at java.util.Random.nextInt(Random.java:265)
at Räknare.<init>(Räknare.java:28)
at Räknare_Main.main(Räknare_Main.java:5)
线程“main”java.lang.IllegalArgumentException中的异常:n必须为正
位于java.util.Random.nextInt(Random.java:265)
在Räknare.(Räknare.java:28)
在Räknare_Main.Main(Räknare_Main.java:5)
来自Java.util.Random的Java文档:
All 2^32 possible int values are produced with (approximately) equal probability.
你可能想试试
StartVärde = rand.nextInt();
默认情况下,它将产生正随机数和负随机数。您只需使用
rand.nextInt()
。它将返回一个32位的随机int
。因为在Java中,int被解释为有符号的,所以您将得到正值和负值
更多信息:
因此,如果使用
Random.nextInt()
is将返回一个介于Integer.MIN\u value
和Integer.MAX\u value
之间的值,请参见下面的答案。此外,原因是max-min不适合整数,因此不能传递给nextInt。如果您想要更大范围的内容,请使用nextLong()。此外,变量名中的特殊字符可能会出现问题。如果我是你,我会将StartVärde
重命名为startVaerde
(由于Java命名约定,小写)。不,你需要Random.nextInt()
notRandom.nextInt(int n)
。