public class Test
{
public static void main(String[] args)
{
int[] index = {3,4,5};

for(int t : index)
{
                        //问题:这里为什么没有能对数组的值进行操作
t = 10;
}

for(int t : index)
{
                        //还是原来的值
System.out.println(t);
}

}
}

解决方案 »

  1.   

    第一个for  t是取数组里面的值  没有办法改变数组里面的值 
      

  2.   

    for(int t : index)
    {
                            //问题:这里为什么没有能对数组的值进行操作
    t = 10;
    }等于
    for(int i = 0; i < index.length; i++)
    {
    int t = index[i];
    t = 10;//这里怎么改变都没有用
    }
      

  3.   

    你修改了取出以后的值...
    for(int i=0;i<index.length;i++){
      index[i] = 10;
    }这么改才有用...
      

  4.   

    相当于
    for(int i=0; i< index.length ;i++){
        t=index[i];
        t=10}怎么能改变数组里面的值呢?
      

  5.   

    简单类型都是值拷贝,不是拷贝引用,因此你对T操作只会影响T本身,因为T并不是index[i]的引用,thks!
      

  6.   

    foreach 循环只能用于遍历浏览,并不能修改其中的值。要修改值的话,需要使用 for 循环。
      

  7.   

    简单类型都是值拷贝,不是拷贝引用,因此你对T操作只会影响T本身,因为T并不是index[i]的引用,thks!
    -------------------------------------------------------
    没看懂这位兄台的话..
      

  8.   

    值拷贝 和 引用拷贝  这两个概念你明白吗?简单类型 int byte long double float ...这些, 以及String, 虽然String 是一个对象类型,但是他是特殊的,他的运算符是重载过的对象类型,继承自java.lang.Object的所有对象除了java.lang.String值拷贝的意思 :
    a变量分配内存x1 变量b分配内存x2 当操作 b = a 时, 将x1的存储内容复制给x2引用拷贝的意思 :
    A变量分配内存x1 变量B分配内存x2 当操作 B = A 时, 将B的内存指针指向A的内存地址x1明白了吧?public class Test
    {
    public static void main(String[] args)
    {
    int[] index = {3,4,5};for(int t : index)
    {
                            //问题:这里为什么没有能对数组的值进行操作
    t = 10;
    }for(int t : index)
    {
                            //还是原来的值
    System.out.println(t);
    }}
    }由于是简单类型,你每次改变的都是t本身的值,没有改变index每个元素的值,因此值不会变。
      

  9.   

    JDK 1.5的新特性,int t指定数据类型为int,后面的部分是集合,作循环就是遍历集合的元素。所以第2个for输出的值还是数组的初始值3.4.5。
      

  10.   

    你可以用
    for(int i = 0; i < index.length; i++)
    {
    t = 10;
    int t = index[i];
    }
    试试看
      

  11.   

    错了 是
    你可以用
    for(int i = 0; i < index.length; i++)
    {
    int t;
    t = 10;
    t = index[i];
    }
    试试看
      

  12.   

    我记得好象也是foreach()函数的用法
      

  13.   

    aidebear() 这位仁兄说的透彻!!学习、、、
      

  14.   

    for(int t : index)
    {
       t = 10;              //问题:这里为什么没有能对数组的值进行操作
                            //t是什么?t就是temp,临时变量,到t != index[i]记住!index[i] =10才改变数组的值
    }等于
    for(int i = 0; i < index.length; i++)
    {
    int t = index[i];
    t = 10;//这里怎么改变都没有用
    //肯定没用的,int t = index[i]是把数组的数值赋给了t
    }for(int i = 0; i < index.length; i++)
    {
    int t = 10;
    index[i] = t;//你看看这么写有没有用
    }
      

  15.   

    不知道lz想实现什么,要是想改变数组的数字 那为什么不直接用for(int i;i<index.length;i++){ a[i]= //里面输入你想修改的值 }           ok?