1:递归是一种常见的算法思路,例如深度优先搜索
2:递归的基本思想是“自己调自己”。
递归结构包括两个部分
【】定义递归头:解决:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。
【】递归体:解决:什么时候需要调用个自身方法。
package com.it.baizhan;
import java.io.File;
//打印目录树、结合递归
public class PrintFileTree {
public static void main(String[] args) {
File f = new File(System.getProperty("user.dir"));//相对路径,默认放到user.dir目录下
printFile(f,0);//打印目录
}
static void printFile(File file,int level){//这里不能将printfile方法和下面的if语句和for语句对调过来使用,否则会导致编译错误,
for (int i=0;i<level;i++){
System.out.print("-");
}
//输出文件名
System.out.println(file.getName());
if (file.isDirectory()){
File[] files = file.listFiles();//列出他的所有子文件,子目录
for (File temp:files){//temp在这里是当前处理的子文件或子目录
printFile(temp,level+1);
}
}
}
}