我准备了一个代码,用于从整数数组(1 - 10)中获取一个随机数,以构建一个乘法表。
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 + "? ");
代码有时会返回“0”。如果两个数组中都没有分配0值,为什么会这样呢?
答案 0 :(得分:3)
来自https://docs.oracle.com/javase/7/docs/api/java/util/Random.html#nextInt(int)
NextInt返回伪随机,均匀分布的int值介于0(含)和指定值(不包括)之间,
换句话说,在您的情况下,nextInt
将返回0到9之间的值。
如果你想使用随机数作为数组的索引,你可以做一些像@ haba713' s上面/下面的回答
答案 1 :(得分:0)
new Random().nextInt(anArrayOne.length)
返回0和length
之间的随机整数,但您应该将其用作索引来从数组中选择实际值,如下所示:
Random rnd = new Random();
int firstNumber = anArrayOne[rnd.nextInt(anArrayOne.length)];
int secondNumber = anArrayTwo[rnd.nextInt(anArrayTwo.length)];