参见英文答案 >
Why JAVA foreach doesn’t change element value?7个
我不明白为什么我不能使用增强的for循环为数组的元素赋值.
例如,使用for循环
我不明白为什么我不能使用增强的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循环.