Java中的循环数组和RNG

时间:2017-12-29 05:31:06

标签: 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();

    //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]);         
    }       

}

}

1 个答案:

答案 0 :(得分:2)

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

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

要正确迭代数组,您应该使用以下内容:

for (int i = 0; i < array.length; i++) {                     
    array[i] = rand.nextInt(100)+1;
    System.out.println(array[i]);                                
}