Random() returns 零但没有零值
Random() returns zero but there is no zero value
我已经准备了一个代码来从整数数组 (1 - 10) 中获取一个随机数来构建乘法 table。
int[] anArrayOne = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] anArrayTwo = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int answer;
int firstNumber = new Random().nextInt(anArrayOne.length);
int secondNumber = new Random().nextInt(anArrayTwo.length);
System.out.println("What is" + firstNumber + " times "
+ secondNumber + "? ");
代码有时returns“0”。如果两个数组中都没有分配 0 值,为什么会出现这种情况?
new Random().nextInt(anArrayOne.length)
returns 一个介于 0 和 length
之间的随机整数,但您应该将其用作 select 数组中实际值的索引,如下所示:
Random rnd = new Random();
int firstNumber = anArrayOne[rnd.nextInt(anArrayOne.length)];
int secondNumber = anArrayTwo[rnd.nextInt(anArrayTwo.length)];
来自https://docs.oracle.com/javase/7/docs/api/java/util/Random.html#nextInt(int)
NextInt returns 一个伪随机、均匀分布的 int 值,介于 0(含)和指定值(不含)之间,
换句话说,在您的情况下,nextInt
将 return 一个从 0 到 9 的值。
如果你想使用随机数作为数组的索引,你可以做类似@haba713 的回答above/below
我已经准备了一个代码来从整数数组 (1 - 10) 中获取一个随机数来构建乘法 table。
int[] anArrayOne = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] anArrayTwo = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int answer;
int firstNumber = new Random().nextInt(anArrayOne.length);
int secondNumber = new Random().nextInt(anArrayTwo.length);
System.out.println("What is" + firstNumber + " times "
+ secondNumber + "? ");
代码有时returns“0”。如果两个数组中都没有分配 0 值,为什么会出现这种情况?
new Random().nextInt(anArrayOne.length)
returns 一个介于 0 和 length
之间的随机整数,但您应该将其用作 select 数组中实际值的索引,如下所示:
Random rnd = new Random();
int firstNumber = anArrayOne[rnd.nextInt(anArrayOne.length)];
int secondNumber = anArrayTwo[rnd.nextInt(anArrayTwo.length)];
来自https://docs.oracle.com/javase/7/docs/api/java/util/Random.html#nextInt(int)
NextInt returns 一个伪随机、均匀分布的 int 值,介于 0(含)和指定值(不含)之间,
换句话说,在您的情况下,nextInt
将 return 一个从 0 到 9 的值。
如果你想使用随机数作为数组的索引,你可以做类似@haba713 的回答above/below