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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wanghongye 黑马帝   /  2011-11-22 20:18  /  2292 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wanghongye 于 2011-11-23 18:14 编辑

看一个例子:public static void main(String[] args){
File[]  files=File.listRoots();
for(File f:files){
System.out.println(f);
}
}
输出的是:
C:\
D:\
E:\
F:\
这里的for(File f:files)我就有点不明白什么意思。没看懂。循环的形式是怎样的,还有这里的for循环的结束判断语句是什么?它是依据什么结束循环的。

7 个回复

倒序浏览
for(File f:files)与

for(int i = 0; i < files.length; i++){
      File f = files[i];
}

的效果是一样的

评分

参与人数 1黑马币 +1 收起 理由
wanghongye + 1 赞一个!

查看全部评分

回复 使用道具 举报
增强的for循环就是foreach
回复 使用道具 举报
jdk1.5的新特性
for(循环变量类型  循环变量名称 : 要被遍历的对象)
{
         循环体;
}
回复 使用道具 举报
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};
  /**
     * 新式写法
     */
  for (int a : arr)
   System.out.println(a);
  /**
     * 旧式写法
     */
  for (int i = 0; i < arr.length; i++)
   System.out.println(arr[i]);
实现结果都一样,但是增强for循环节省代码而且看起来也方便。
回复 使用道具 举报
JDK1.5加入的增强for和循环
主要是针对数组遍历的

for(元素类型t 元素变量x : 遍历对象obj){
     引用了x的java语句;
}
回复 使用道具 举报
冯敏 黑马帝 2011-11-22 21:22:55
7#
其实增强for并不难理解,增强for多数应用于数组,对于一维数组,通过变量来访问数组的当前元素,如:
int[]  number={1,2,3,4,5};
for(int n:number){
   System.out.println(n);
  }
}
当第一次循环时,把number[0]的值赋给n,然后输出n的值为1,第二次循环时,把number[1]的值赋给n,然后输出n的值为2,如此往下循环...

下面举个二维数组的例子:
int[][] array=new int[4][5];
for(int[] i:array)
             for(int j:i)
                System.out.println(j);
外层循环用一维数组访问二维数组的元素,内层循环用单个变量访问一维数组,增强for通过降级来层层访问数组元素,

回复 使用道具 举报
增强for循环既可以遍历数组,也可以遍历集合
使用增强for循环和普通for循环没有太大区别

不过在遍历集合时,可以使代码比较简洁:
你试试遍历一个集合去,没有增强for你还得加个迭代器。
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {  
String str = it.next();
System.out.println(str);
}
增强for循环遍历:
for (String str : set) {
     System.out.println(str);
}
有点很明显了,节省多少代码呢看起来也方便,实现结果都一样。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马