黑马程序员技术交流社区

标题: for语句加强问题 [打印本页]

作者: 马如龙    时间: 2014-6-16 18:35
标题: for语句加强问题
本帖最后由 马如龙 于 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.   }
复制代码

请问错在什么地方

作者: 790324255a    时间: 2014-6-16 19:16
i是集合的元素而不是角标 你这样是错误的 直接System.out.println(i)就可以获取每个元素 而不用加arr[i] 高级for循环格式   for(数据类型 变量名:被遍历的集合或数组){}
作者: a6217815    时间: 2014-6-16 19:43
  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不是角标
作者: 马如龙    时间: 2014-6-16 20:53
a6217815 发表于 2014-6-16 19:43
是循环输出 i,不是arr,这里的i不是角标

非常感谢你的回答
作者: 墓____夜    时间: 2014-6-16 21:03
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那个容器中的所有元素  
你直接打印元素就可以了。
作者: 人心如水    时间: 2014-6-16 23:04
arr[i]明显的错误    i就是指的遍历出来的数组里面的元素,

高级for循环格式:

for( 容器中元素的类型  变量名  : 容器名称  ){
        循环体
}
记住了格式里面的内容,基本就不怕出错了
作者: 马如龙    时间: 2014-6-17 01:31
墓____夜 发表于 2014-6-16 21:03
02.int[] arr ={4,7,3,9,2};

03.  selectSort(arr);

谢谢,你的回答真是帮了大忙了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2