黑马程序员技术交流社区
标题:
递归
[打印本页]
作者:
yangyinhui
时间:
2013-4-2 19:29
标题:
递归
本帖最后由 yangyinhui 于 2013-4-2 22:34 编辑
/*
* 从键盘接收一个文件夹路径
* 统计该文件夹大小
*/
public class Exercise4 {
public static void main(String[] args) {
File dir = Exercise2.getDir();
System.out.println(getDirLength(dir));
}
public static long getDirLength(File dir) {
int length = 0; // 定义变量用来统计大小
File[] subFiles = dir.listFiles(); // 获取所有子文件
for (File subFile : subFiles) // 遍历子文件
length += subFile.isFile() ? subFile.length() : <font style="background-color: deepskyblue;" color="black">getDirLength(subFile);</font> // 文件大小直接累加, 文件夹大小递归之后累加
return length;
}
}
问题 : 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