增强的for循环不适用于为数组赋值(Java)

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)

有没有具体原因导致这种情况或我做错了什么?

Era*_*ran 9

在增强的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循环.