Act*_*eld 6 java arrays loops for-loop
我不明白为什么我不能使用增强的for循环为数组的元素赋值.例如,使用for循环
int[] array = new int[5];
for(int i = 0; i < 5; i++)
array[i] = 10;
Run Code Online (Sandbox Code Playgroud)
生产我想要的东西.但为什么这不适合"为每个人":
for(int element : array)
element = 10;
Run Code Online (Sandbox Code Playgroud)
有没有具体原因导致这种情况或我做错了什么?
在增强的for循环中,element是一个局部变量,它包含对数组当前元素的引用(或基元的值),或者Iterable您正在迭代.
分配给它不会影响数组/ Iterable.
它相当于:
int[] array = new int[5];
for(int i = 0; i < 5; i++) {
int element = array[i];
element = 10;
}
Run Code Online (Sandbox Code Playgroud)
其中也不会修改数组.
如果需要修改数组,请使用常规for循环.