Java 如果我将0传递给random.nextInt()会发生什么
我正在使用java.util.random的nextInt函数来获取一个随机数,我注意到我的代码可能会向该函数传递一个0。我想知道在这种情况下会有什么结果。我猜它每次都会返回0,但我不确定。如果传入0,它将抛出一个Java 如果我将0传递给random.nextInt()会发生什么,java,Java,我正在使用java.util.random的nextInt函数来获取一个随机数,我注意到我的代码可能会向该函数传递一个0。我想知道在这种情况下会有什么结果。我猜它每次都会返回0,但我不确定。如果传入0,它将抛出一个IllegalArgumentException 从: 参数: n-要返回的随机数的界限必须为正。 返回: 此随机数生成器序列中0(包括)和n(不包括)之间的下一个伪随机、均匀分布的int值 抛出: IllegalArgumentException-如果n不是正数 如果传递n=0,它将
IllegalArgumentException
从:
参数:
n
-要返回的随机数的界限必须为正。返回: 此随机数生成器序列中0(包括)和n(不包括)之间的下一个伪随机、均匀分布的int值
抛出:
IllegalArgumentException
-如果n
不是正数
如果传递
n=0
,它将引发运行时异常
public int nextInt(int n) {
if (n <= 0)
throw new IllegalArgumentException("n must be positive");
if ((n & -n) == n) // i.e., n is a power of 2
return (int)((n * (long)next(31)) >> 31);
int bits, val;
do {
bits = next(31);
val = bits % n;
} while (bits - val + (n-1) < 0);
return val;
}
public int nextInt(int n){
如果(n>31);
int位,val;
做{
比特=下一个(31);
val=位%n;
}而(位-val+(n-1)<0);
返回val;
}
您可以随时尝试,也可以查看源代码…Downvote,因为它很容易测试您自己。如果你不明白结果,你可以把它们贴出来,问为什么它们是那样的。