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为什么不能修改

解决方案 »

  1.   

    ...
    循環的對象是a。。不是i
    i只是相當于一個自增的計數器一樣的。。
      

  2.   

    for(int   i:a) 是把a的元素迭代逐个赋值给i,你的a[10]里的每个元素都没有初始化,默认都是0,所以每次进入循环i都是0。 
      

  3.   

    for(int       i:a)   是把a的元素迭代逐个赋值给i,你的a[10]里的每个元素都没有初始化,默认都是0,所以每次进入循环i都是0。
    ===============================================================================================
    虽然你答非所问 但是把问题说出来了 “是把a的元素迭代逐个赋值给i,”确认??
      

  4.   

    for each 本来就不适合赋值for(int   i:a){ 
    i=i+1; 
    }int i:a 是循环的把数组a的值赋给i
    循环体是把 a[x]+i 赋值给 i
    也就是,不管几个循环..改变的都是i的值每个循环i都被2次赋值...一次是在int i:a,还有一次是在i=i+1数组a当然不会变...疯狂变动的只是i而已...
      

  5.   

    for (int j : a)
    意思是将j打印出a.length个出来啊,所以打印出10个0
    第一个程序就是i++后i的值变成1,然后打印出a数组的个数的次数,即打印出10个1
      

  6.   

    NND  学java之前千万别去学C++ 要学就把C++学精 什么赋值 引用 拷贝 我越来越分不清了 头疼 哪有这方面的介绍 给个链接 谢谢
      

  7.   

    上面回答错误了
    for   (int   j   :   a)是将a数组中的值打印出来啊
    由于你a数组中的值没有变化,就是初始值的默认0
    所以出现了那种情况 
      

  8.   

    for(variable:collection)statement
    如果把它设计成改变variable就是改变collection中的值多好啊 现在这样还要另外开辟一块区域存储variable