黑马程序员技术交流社区
标题:
请教for的增强循环问题
[打印本页]
作者:
Camwly
时间:
2015-11-29 13:22
标题:
请教for的增强循环问题
public static void main(String[] args){
int[] arr=new int[]{1,2,3};
for (int i : arr) {
//每个元素赋值为5
i=5;
}
for (int i : arr) {
System.out.println(i);
}
}
为什么输出的结果还是1 2 3呢,我明明把每个元素都赋值为5了。
作者:
xinxiangchen
时间:
2015-11-29 20:04
增强for循环只能获取元素,不能对其中的元素进行修改,
我的理解是相当于下面这样
for(int x=0;x<arr.length;x++){
int y=arr[x];//y即相当于i
y=5;
}
作者:
yuhongzhen
时间:
2015-11-29 20:11
你在增强for循环的时候,定义了int变量i,你把5赋值给i,跟数组元素没有直接关系,增强for循环只是将数组元素读取而已,要改变元素的值,需要数组名[下标]这种方式。
作者:
Myth、骞
时间:
2015-11-29 20:15
foreach 循环中的迭代变量不是集合元素本身,系统只是单纯依次把集合元素的值赋给迭代变量,因此在foreach循环中修改迭代变量没有实际意义。 简单说你的i就是在foreach循环里的局部变量,出去就没意义,改变不了集合元素值。
当使用foreach 循环来迭代访问集合元素时,该集合不能被改变,否则将会引发ConcurrentModificationException异常。
作者:
xiaoziyk
时间:
2015-11-29 22:04
你还是回去,仔细去看看增强for的使用,上面的人都告诉你了.学习要认真
作者:
洛荣神川
时间:
2015-11-29 22:52
i是中间变量,并不是数组的变量
作者:
Camwly
时间:
2015-11-29 23:15
谢谢楼上各位大神
作者:
队长别开枪是我
时间:
2015-11-29 23:17
不明白 顶一下
作者:
^_^笨和尚^_^
时间:
2015-11-29 23:30
发现我不会啊。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2