黑马程序员技术交流社区

标题: 递归 [打印本页]

作者: yangyinhui    时间: 2013-4-2 19:29
标题: 递归
本帖最后由 yangyinhui 于 2013-4-2 22:34 编辑
  1. /*
  2. * 从键盘接收一个文件夹路径
  3. * 统计该文件夹大小
  4. */
  5. public class Exercise4 {

  6.         public static void main(String[] args) {
  7.                 File dir = Exercise2.getDir();
  8.                 System.out.println(getDirLength(dir));
  9.         }
  10.         
  11.         public static long getDirLength(File dir) {
  12.                 int length = 0;                                                // 定义变量用来统计大小
  13.                 File[] subFiles = dir.listFiles();        // 获取所有子文件
  14.                 for (File subFile : subFiles)                 // 遍历子文件
  15.                         length += subFile.isFile() ? subFile.length() : <font style="background-color: deepskyblue;" color="black">getDirLength(subFile);</font>                // 文件大小直接累加, 文件夹大小递归之后累加
  16.                 return length;
  17. }
  18. }
  19. 问题 : getDirLength(subFile);  执行后length+=是怎样执行的
复制代码

作者: 黑马-郑玉元    时间: 2013-4-2 20:24
大哥你这写的什么呀!把代码认真复制粘贴行不?后面的是错误语句吧?
作者: 黑马-郑玉元    时间: 2013-4-2 20:35
length += subFile.isFile() ? subFile.length(): getDirLength(subFile);这句话是这么执行的!
先执行subFile.isFile(),得到的是真还是假,如果是真,执行subFile.length(),得到结果与length相加;如果为假,执行: getDirLength(subFile);
作者: 陈丽莉    时间: 2013-4-2 22:10
若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~




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