增强的for循环无法为数组赋值(Java)

前端之家收集整理的这篇文章主要介绍了增强的for循环无法为数组赋值(Java)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Why JAVA foreach doesn’t change element value?7个
我不明白为什么我不能使用增强的for循环为数组的元素赋值.
例如,使用for循环
int[] array = new int[5];
    for(int i = 0; i < 5; i++)
      array[i] = 10;

生产我想要的东西.
但为什么这不适合“为每个人”:

for(int element : array)
      element = 10;

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

解决方法

在增强的for循环元素中,是一个局部变量,它包含一个引用数组当前元素的引用(或基本情况下的值)或迭代迭代的Iterable.

分配给它不会影响数组/ Iterable.

它相当于:

int[] array = new int[5];
for(int i = 0; i < 5; i++) {
  int element = array[i];
  element = 10;
}

其中也不会修改数组.

如果需要修改数组,请使用常规for循环.

原文链接:https://www.f2er.com/java/121282.html

猜你在找的Java相关文章