java.util.random の nextInt 関数を使用して乱数を取得していますが、コードが関数に 0 を渡す可能性があることに気付きました。この場合、どのような結果になるのか気になります。毎回0を返すだけだと思いますが、よくわかりません。
質問する
1509 次
2 に答える
5
を渡すと実行時例外がスローされます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;
}
于 2012-05-23T03:56:52.210 に答える
4
IllegalArgumentException
ゼロを渡すと、がスローされます。
javadocから:
パラメータ:
n
- 返される乱数の範囲。正でなければなりません。
戻り値: この乱数ジェネレーターのシーケンスからの次の擬似乱数、一様に分散された 0 (含む) と n (含まない) の間の int 値
スロー:IllegalArgumentException
-n
が正でない場合
于 2012-05-23T03:55:32.003 に答える