Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中循环和RNG的数组_Java_Arrays_For Loop_Random - Fatal编程技术网

Java中循环和RNG的数组

Java中循环和RNG的数组,java,arrays,for-loop,random,Java,Arrays,For Loop,Random,我正在尝试编写一个简单的for循环,它生成三个整数,并将每个值赋给一个数组索引。代码中的第二个for循环返回意外结果。有人能给我解释一下发生了什么事吗 import java.util.Random; public class Main { public static void main(String[] args) { //variables int[] array = new int[3]; Random rand = new Random(); //

我正在尝试编写一个简单的for循环,它生成三个整数,并将每个值赋给一个数组索引。代码中的第二个for循环返回意外结果。有人能给我解释一下发生了什么事吗

import java.util.Random;

public class Main {

public static void main(String[] args) {

    //variables
    int[] array = new int[3];
    Random rand = new Random();

    //all else

    for(int item : array) {                     
            array[item] = rand.nextInt(100)+1;
            System.out.println(array[item]);                                
    }       

    System.out.println("\n " +  array[0] + " " + array[1] + " " + array[2]);

    for(int i = array.length; i > 0; i--){
        System.out.println(array[i-1]);         
    }       

}

}
通过使用增强的for循环,
item
的值将始终为0,因为数组在循环开始之前刚刚初始化。本质上,这将只是将数组的第一个索引设置为随机值(在您定义的范围之间)并打印它

要正确迭代数组,应使用以下命令:

for (int i = 0; i < array.length; i++) {                     
    array[i] = rand.nextInt(100)+1;
    System.out.println(array[i]);                                
}
for(inti=0;i
为什么您认为
包含语义正确的数组索引?
int[]array=new int[3]在每个索引处创建默认值为0的整数数组。在数组值上循环,数组值始终为0,当填充数组时,它始终为数组[0],因此数组[0]将具有最后一个随机数,因为其他索引处的值未被触及,所以它们为0。
for (int i = 0; i < array.length; i++) {                     
    array[i] = rand.nextInt(100)+1;
    System.out.println(array[i]);                                
}