递归: 函数的自身调用函数的自身.
案例一: 计算 5 的阶乘
- public class Demo{
- public static void main(String[] args) {
- int result = print(5);
- System.out.println("结果是:"+ result);
- }
- public static int print(int num){
- if(num==1){
- return 1;
- }else{
- return num*print(num-1);
- }
- }
- public static int test(int num){
- int result = 1;
- while(num>0){
- result = result*num;
- num--;
- }
- return result;
- }
- }
5 的阶乘. PNG
案例二: 列出一个文件夹的子孙文件与目录.
案例三: 列出指定目录中所有的子孙文件与子孙目录名, 要求名称前面要有相应数量的空格:
案例四: 列出指定目录中所有的子孙文件与子孙目录名, 要求要是树状结构
如图:
- |--xx
- | |--xx
- | | |--xx
- | | | |--xx
- | | | | |--xxxx
- | | | |--xx
- | | | | |--xxxx
- | | | |--xx
- | | | | |--xxxx
demo:
- public class Demo {
- public static void main(String[] args) {
- /* File dir = new File("F:\\workspace");
- listFiles3(dir,"|--");*/
- File dir = new File("F:\\aa");
- deleteDir(dir);
- }
- // 删除了一个非空的目录
- public static void deleteDir(File dir){ // bb
- File[] files = dir.listFiles(); // 列出了所有的子文件
- for(File file : files){
- if(file.isFile()){
- file.delete();
- }else if(file.isDirectory()){
- deleteDir(file);
- }
- }
- dir.delete();
- }
- public static void listFiles3(File dir,String space){ //space 存储的是空格
- File[] files = dir.listFiles(); // 列出所有 的子文件
- for(File file : files){
- if(file.isFile()){
- System.out.println(space+file.getName());
- }else if(file.isDirectory()){
- System.out.println(space+file.getName());
- listFiles3(file,"|"+space);
- }
- }
- }
- // 列出一个文件夹的子孙文件与目录.
- public static void listFiles2(File dir,String space){ //space 存储的是空格
- File[] files = dir.listFiles(); // 列出所有的子文件
- for(File file : files){
- if(file.isFile()){
- System.out.println(space+file.getName());
- }else if(file.isDirectory()){
- System.out.println(space+file.getName());
- listFiles2(file," "+space);
- }
- }
- }
- // 列出一个文件夹的子孙文件与目录.
- public static void listFiles1(File dir){
- File[] files = dir.listFiles(); // 列出所有的子文件
- for(File file : files){
- if(file.isFile()){
- System.out.println("文件名:"+file.getName());
- }else if(file.isDirectory()){
- System.out.println("文件夹:"+file.getName());
- listFiles1(file);
- }
- }
- }
- }
来源: http://www.jianshu.com/p/7351be11c5bd