Java 如何在使用";时初始化具有多个值的整数数组;至于;
当我试图用Java创建一个小型GUI时,我偶然发现了数组的这个小问题 我曾尝试将随机整数插入一维数组,结果发现随机整数不会被赋值Java 如何在使用";时初始化具有多个值的整数数组;至于;,java,arrays,Java,Arrays,当我试图用Java创建一个小型GUI时,我偶然发现了数组的这个小问题 我曾尝试将随机整数插入一维数组,结果发现随机整数不会被赋值 //Declaring an Integer Array int[] wuerfel = new int[2]; //It will loop once while assigning a random number to the array for(int i = 0; i <= 1; i++) {
//Declaring an Integer Array
int[] wuerfel = new int[2];
//It will loop once while assigning a random number to the array
for(int i = 0; i <= 1; i++) {
Random rand = new Random(6);
int zahlen = rand.nextInt(6) + 1;
wuerfel[i] = zahlen;
}
System.out.println(Arrays.toString(wuerfel));
//声明一个整数数组
int[]wuerfel=新int[2];
//将随机数分配给数组时,它将循环一次
对于(int i=0;i构造函数调用new Random(6)
不会执行您认为它会执行的操作:6
是种子,而不是可能输出的范围。因此,它每次都会生成相同的输出
可能的解决办法:
- 改为使用
Random()
的无参数构造函数,这样每次都会给它一个不同的种子
- 在循环外部声明并初始化
rand
,可以使用或不使用显式种子
- 使用
Math.random()
构造函数调用new Random(6)
不会做您认为它会做的事情:6
是种子,而不是可能输出的范围。因此它每次都会产生相同的输出
可能的解决办法:
- 改为使用
Random()
的无参数构造函数,这样每次都会给它一个不同的种子
- 在循环外部声明并初始化
rand
,可以使用或不使用显式种子
- 使用
Math.random()
因此,在代码中,您为自己的对象设置了一个种子,并在每次循环迭代中创建新的Random
对象,使其每次返回相同的数字。如果使用种子,则Random
类的文档说明:
如果使用相同的种子创建了两个Random实例,并且对每个实例进行了相同的方法调用序列,则它们将生成并返回相同的数字序列
在您的情况下,您可以从构造函数中除去种子值,或者将类对象创建移动到循环之外:
public static void main(String[] args) {
int[] arr = new int[2];
Random rand = new Random();
for(int i = 0; i <= 1; i++) {
int zahlen = rand.nextInt(6) + 1;
arr[i] = zahlen;
}
System.out.println(Arrays.toString(arr));
}
publicstaticvoidmain(字符串[]args){
int[]arr=新的int[2];
Random rand=新的Random();
对于(int i=0;i,您在代码中为自己的循环设置了一个种子,并在每次循环迭代中创建新的Random
对象,因此每次都返回相同的数字。如果使用种子,则Random
类的文档说明:
如果使用相同的种子创建了两个Random实例,并且对每个实例进行了相同的方法调用序列,则它们将生成并返回相同的数字序列
在您的情况下,您可以从构造函数中除去种子值,或者将类对象创建移动到循环之外:
public static void main(String[] args) {
int[] arr = new int[2];
Random rand = new Random();
for(int i = 0; i <= 1; i++) {
int zahlen = rand.nextInt(6) + 1;
arr[i] = zahlen;
}
System.out.println(Arrays.toString(arr));
}
publicstaticvoidmain(字符串[]args){
int[]arr=新的int[2];
Random rand=新的Random();
对于(int i=0;i*
int[]wuerfel=新int[2];
//将随机数分配给数组时,它将循环一次
Random rand=新的Random();
对于(int i=0;i*
int[]wuerfel=新int[2];
//将随机数分配给数组时,它将循环一次
Random rand=新的Random();
对于(int i=0;i)为您的代码设置了一个种子>随机并创建新的<代码>随机每个循环迭代,因此每次只返回相同的数目。您可以考虑使用<代码> Mault.Read()。
获取随机数在发现我已经设定了一个种子后,我重写了代码,并将random
类对象移出循环,这次我添加了“Math.random()它的工作完美无瑕。谢谢大家的帮助!为你的<代码>随机< /代码>设置了一个种子,并且你创建了新的<代码>随机每个循环迭代,所以每次只返回相同的数字。你可以考虑使用<代码> Mault.Read()。
获取随机数在发现我已经设定了一个种子后,我重写了代码,并将random
类对象移出循环,这次我添加了“Math.random()感谢大家的帮助。Random
对象的创建也应该移出循环。Random
对象的创建也应该移出循环。