A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,关于两种for循环来输出数组,其中的变量i有什么区别呢 int[] arr = new int{1,2,3,4};for{int i=0 ; i < arr.length() ; i++ }{  System.out.print(arr[i]);}for (int i : arr){  System.out.print(arr[i]);}为什么运行第二种方法就会报错java.lang.ArrayIndexOutOfBoundsException。

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

6 个回复

倒序浏览
如题,关于两种for循环来输出数组,其中的变量i有什么区别呢int[] arr = new int{1,2,3,4};
for{int i=0 ; i < arr.length() ; i++ }{  
      System.out.print(arr[i]);
}
for (int i : arr){  
        System.out.print(arr[i]);
}


为什么运行第二种方法就会报错java.lang.ArrayIndexOutOfBoundsException。


回复 使用道具 举报
第二种改成 System.out.print(i);你看看就知道为什么了
回复 使用道具 举报
高级for循环,i指向的是数组中的各个元素。不是数组角标。

点评

哦哦 懂了  发表于 2014-10-18 23:35
回复 使用道具 举报
增强for循环中,arr[i]中i没有迭代!
回复 使用道具 举报
越界  把System.out.println(arr[i]); 改成System.out.println(i);结果是对的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马