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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马如龙 中级黑马   /  2014-6-16 18:35  /  1198 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马如龙 于 2014-6-16 18:37 编辑

  1. int[] arr ={4,7,3,9,2};
  2.   selectSort(arr);
  3.   for(int i:arr){
  4.    System.out.println(arr[i]);
  5.   }
复制代码

普通for语句实现没错误
如下可以正确实现:
  1. int[] arr ={4,7,3,9,2};
  2.   selectSort(arr);
  3.   for(int i=0;i<arr.length;i++){
  4.    System.out.println(arr[i]);
  5.   }
复制代码

请问错在什么地方

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

6 个回复

倒序浏览
i是集合的元素而不是角标 你这样是错误的 直接System.out.println(i)就可以获取每个元素 而不用加arr[i] 高级for循环格式   for(数据类型 变量名:被遍历的集合或数组){}

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
  1. int[] arr ={4,7,3,9,2};
  2.   selectSort(arr);
  3.   for(int i:arr){
  4.    System.out.println(i);//改成这样
  5.   }
复制代码

是循环输出 i,不是arr,这里的i不是角标

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
a6217815 发表于 2014-6-16 19:43
是循环输出 i,不是arr,这里的i不是角标

非常感谢你的回答
回复 使用道具 举报
02.int[] arr ={4,7,3,9,2};

03.  selectSort(arr);

04.  for(int i:arr){

05.   System.out.println(i);

06.  }

这样就可以了,因为你syso (arr[i])这个i是不存在的  所以 arr[i]也是不存在的。
为什么syso( i)就可以呢?  


因为  增强for循环的 i 代表arr那个容器中的所有元素  
你直接打印元素就可以了。
回复 使用道具 举报
arr[i]明显的错误    i就是指的遍历出来的数组里面的元素,

高级for循环格式:

for( 容器中元素的类型  变量名  : 容器名称  ){
        循环体
}
记住了格式里面的内容,基本就不怕出错了
回复 使用道具 举报
墓____夜 发表于 2014-6-16 21:03
02.int[] arr ={4,7,3,9,2};

03.  selectSort(arr);

谢谢,你的回答真是帮了大忙了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马