import java.util.Random;
class arel {
public static void main(String args[]){
Random rand = new Random();
int[] number = new int[7];
for(int roll = 1; roll < 100; roll++){
++number[1+rand.nextInt(6)];
}
System.out.println("Index\tValue");
for(int count = 1; count<number.length; count++){
System.out.println(count+"\t"+number[count]);
}
}
}
++number[1+rand.nextInt(6)];
是否为每个索引插入随机数?
答案 0 :(得分:2)
++number[1 + rand.Next(6)];
类似于:
// get a random number between 1 and 6
int index = 1 + rand.nextInt(6);
// increase the element of the array at the given random index by 1
number[index] = number[index] + 1;
答案 1 :(得分:0)
行++number[1+rand.nextInt(6)];
利用了Java中的数组是0初始化和操作顺序这一事实。
生成1到6之间的随机数。数组number
的适当索引基于随机值递增。此操作多次循环。最后,使用第二个循环打印出每个值的打印次数。
但是,此代码从未使用number
数组的0索引。实际上,它是浪费的空间,必须(和)在第二个循环中考虑。
答案 2 :(得分:0)
它正在做什么:
作者忽略零指数的事实有点气味。
答案 3 :(得分:0)
int[] number = new int[7]; // first index=0, last=6.
// After creation all elements are 0
在for循环中,您调用99行:++number[1+rand.nextInt(6)];
++number[index]; // it's the same: number[index]=number[index]+1
rand.nextInt(n)
方法返回0..n-1之间的随机整数。 javadoc
在您的示例中,您向该随机数添加一个,因此您的随机数在:1..6
之间现在你可以理解所有的代码,所以我相信你会知道它的作用。请注意,您的数组的第一个索引为零,永远不会更改。