我尝试编写一个生成三个整数的简单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]);
}
}
}
答案 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]);
}