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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张天军 中级黑马   /  2013-12-24 18:01  /  1211 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.*;
  2. class FileDemo
  3. {
  4.     public static void main(String[] args)
  5.     {
  6.         listRootsDemo();
  7.     }
  8.     public static void listDemo()
  9.     {
  10.         File f = new File("c:\\");
  11.         String[] names = f.list();
  12.         for(String name : names)
  13.         {
  14.             System.out.print(name)
  15.         }
  16.     }
  17.     public static void listRootsDemo()
  18.     {
  19.         File[] = new File.listRoots();
  20.         for(File f : files)
  21.         {
  22.             System.out.println(f);
  23.         }
  24.     }
  25. }
复制代码


        File[] = new File.listRoots();

这句语句中,File[] 后面是 f 还是 files ;

高级for循环简化了普通for循环,那么有哪些弊端呢?

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

8 个回复

倒序浏览
File f 是File[] files中的元素,所以当然是Files啦
回复 使用道具 举报
这个当然是files了,高级for循环的格式:for(类型  变量名:被遍历的对象)  {...}
第一个为遍历结果的类型,第二个只是变量名称,这个名称是自己起的,冒号后面的就是要遍历的目标了。
使用高级for循环有的时候书写比较简便,但是它的局限性就是要有被遍历的目标,没有遍历的目标就不能使用了,这个示例中的files就是遍历目标了。像遍历数组时就 建议使用传统for循环了,因为传统for循环能够操作数组的角标,而这点高级for循环式做不到 的。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
是files,因为这个地方你遍历的是整个C盘的文件,它里面包含了很多的文件,下面你使用for(File f : files)这个遍历的时候,就是遍历所有的files。 使用这种写法的最大优点就是简单,什么意思呢,给你举个例子,和list有关的,看下面的代码:
for(Location temp : locationList){
                                System.out.println(temp.getLatitude());
                                System.out.println(temp.getLongitude());
                        }
这个里面locationList是一个list类型的对象,里面放了很多的数据,现在要遍历整个list对象,那么直接就可以这样简单的写,但是如果使用普通的for循环,那么就必须要知道这个长度呀之类的,什么的。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
恩恩 发表于 2013-12-24 20:21
是files,因为这个地方你遍历的是整个C盘的文件,它里面包含了很多的文件,下面你使用for(File f : files) ...

恩恩同学很勤奋呀
回复 使用道具 举报

呵呵,为啥这么说啊,嘻嘻。
回复 使用道具 举报
恩恩 发表于 2013-12-24 20:30
呵呵,为啥这么说啊,嘻嘻。

总是看到你呀。
回复 使用道具 举报
  1. import java.io.*;
  2. class FileDemo
  3. {
  4.     public static void main(String[] args)
  5.     {
  6.         listRootsDemo();
  7.     }
  8.     public static void listDemo()
  9.     {
  10.         File f = new File("c:\\");
  11.         String[] names = f.list();
  12.         for(String name : names)
  13.         {
  14.             System.out.print(name)
  15.         }
  16.     }
  17.     public static void listRootsDemo()
  18.     {
  19.         File[] = new File.listRoots();
  20.         for(File f : files)
  21.         {
  22.             System.out.println(f);
  23.         }
  24.     }
  25. }
复制代码

File[] f= new File.listRoots();
f啊 因为你高级for中的对象名就是f
所以你new的时候也肯定是f

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
恩恩 中级黑马 2013-12-24 20:46:23
9#

呵呵,还可以吧,没有你说的那么夸张吧。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马