public class A{
public static void main(String args[]){
int[] a=new int[10];
for(int i:a){
i++;
System.out.print(i+" ");
}
}
输出的结果是 1 1 1 1 1 1 1 1 1 1public class A{
public static void main(String args[]){
int[] a=new int[10];
for(int i:a){
i=i+1;
}
for(int j:a)
System.out.print(j+" ");
}
}
输出结果 0 0 0 0 0 0 0 0 0 0为什么不能修改
public static void main(String args[]){
int[] a=new int[10];
for(int i:a){
i++;
System.out.print(i+" ");
}
}
输出的结果是 1 1 1 1 1 1 1 1 1 1public class A{
public static void main(String args[]){
int[] a=new int[10];
for(int i:a){
i=i+1;
}
for(int j:a)
System.out.print(j+" ");
}
}
输出结果 0 0 0 0 0 0 0 0 0 0为什么不能修改
循環的對象是a。。不是i
i只是相當于一個自增的計數器一樣的。。
===============================================================================================
虽然你答非所问 但是把问题说出来了 “是把a的元素迭代逐个赋值给i,”确认??
i=i+1;
}int i:a 是循环的把数组a的值赋给i
循环体是把 a[x]+i 赋值给 i
也就是,不管几个循环..改变的都是i的值每个循环i都被2次赋值...一次是在int i:a,还有一次是在i=i+1数组a当然不会变...疯狂变动的只是i而已...
意思是将j打印出a.length个出来啊,所以打印出10个0
第一个程序就是i++后i的值变成1,然后打印出a数组的个数的次数,即打印出10个1
for (int j : a)是将a数组中的值打印出来啊
由于你a数组中的值没有变化,就是初始值的默认0
所以出现了那种情况
如果把它设计成改变variable就是改变collection中的值多好啊 现在这样还要另外开辟一块区域存储variable