今天在慕课网做练习的时候遇到一个问题。要求生成一个 1-100 的随机数组。我用了 forEach 循环。运行结果都是 0。后来改成了 for 循环结果正常了。上网查到这句话茅塞顿开。

forEach 虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改,而 for 循环可以在遍历的过程中对源数组或者集合进行修改。

forEach 循环

语法

1
2
3
for(数据类型 循环变量 : 循环数组){
循环体
}

例如:

1
2
3
4
int[] scores = {88,95,62,58,77};
for(int socre : scores){
System.out.println("学生的成绩分别为:"+score);
}

换句话说。forEach 循环只能遍历数组,不能对数组中的项进行赋值等操作。
所以如果你新建了一个空数组,然后给数组每一项赋值的时候,只能用 for 循环,而不能使用 forEach 循环。