解决方案 »

  1.   

    for(int[] i :arry){       
            for(int j :i){           
                j = s.nextInt();
            }
        }  
    这样肯定不行了,内循环改为
    for(int j=0;j<i.length;j++){
       i[j] = s.nextInt();
    }
      

  2.   

    您说的是输入的还是输出的呢?我想问的是输入的时候用foreach是把每个元素都存在数组中了吗?然后群殴再用同样的方式取出来为什么又不可以了呢
      

  3.   

    使用foreach循环迭代时:
    对于基本类型变量,相当于复制了一份值给迭代变量,迭代变量和元素是独立的,所以不能改变元素的值
      

  4.   

    数组类型不是引用类型吗?还是说读取数据的内层foreach循环存取的值都是一个int类型,就知识相当于拷贝了一份,。?而不能改变值的大小???
      

  5.   

    输入的时候只用foreach是不行的,理由楼上有解释。输出完全可以用foreach
      

  6.   

    我的理解是虽然数组类型是引用类型,但是里面的每个元素都是基本数据类型,对于基本数据类型,foreach 复制了一份值给迭代变量,在 foreach 中的操作是对迭代变量的操作,所以原来的内容不会变化
    一般情况下是不会在 foreach 中修改内容的
      

  7.   

    增强for循环一般只用于遍历数组或者集合!不能再增强for循环中修改删除数据!
     //输入数据
        for(int[] i :arry){       
            for(int j :i){           
                j = s.nextInt();
            }
        }    
    这样也没有将数据存入数组啊!i[]数组将值赋给j,而你又将从控制台输入的值赋给j,你只是将值赋给 j 覆盖了 j 原来的值,并没有改变数组值啊!所以输出的都是默认值0。