_jayjune
2017-06-24 07:22
采纳率: 100%
浏览 1.7k
已采纳

JAVA增强for循环 循环对象数组 的疑问

          Circlelist[] tempArr = new Circlelist[radix];
//        for (Circlelist tempList : tempArr) {
//            tempList = new Circlelist();
//        }
          for (int l = 0; l < tempArr.length; l++) {
              tempArr[l] = new Circlelist();
        }

为什么第一个增强for循环不能对tempArr数组的每个成员进行初始化,而第二个普通的for循环却可以

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • ljheee 2017-06-24 07:48
    已采纳

    JAVA增强for循环,只能对已初始化的tempArr数组进行操作,比如遍历

    点赞 评论
  • 战在春秋 2017-06-24 08:10

    增强for循环是只读操作。

    for (Circlelist tempList : tempArr) {
      .........
    }
    

    相当于:

    for (int i = 0; i < tempArr.length; i++) {
        Circlelist tempList = tempArr[i];  //读取数组元素值放到一个临时变量中
        ....... //其它代码,使用这个临时变量
    }
    

    题目中第一个增强for循环,并没有实际改变数组元素的值,所以无法完成初始化操作。

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

    点赞 评论
  • Francisco_peng 2017-06-24 08:16

    Java 中新增的 foreach 的用法 你可以看看foreach的局限性

    点赞 评论
  • lihongbiao0610 2017-06-24 08:43

    java增强for循环,类似这种

    for (int l = 0; l < tempArr.length; l++) {
    Circlelist circlelist = tempArr[l] ;

                    circlelist=new Circlelist();
    

    }
    所以只是改变了circlelist变量的指向,并没有给tempArr[l] 赋值

    点赞 评论

相关推荐 更多相似问题