代码改变世界

递归思想解决输出目录下的全部文件

2015-11-23 23:30  v_ZSW  阅读(212)  评论(0编辑  收藏  举报

刚刚了解了下递归思想

递归就是在方法内调用本方法

下面说一个实际的应用
输出目录下的全部文件,当目录中还有目录时,则进入目录输出里面的文件

import java.io.*;
class ShowFile{
    public static void showfile(File files){
        if(files.isDirectory()){
            File[] list=files.listFiles();
            //防止抛出空指针异常
            try{
            for(File file:list){
            if(file.isDirectory()){
            //递归
                showfile(file);
            }
            else{System.out.println(file.getAbsolutePath());}
        }}
            catch(NullPointerException x){
            System.out.println(files.getAbsolutePath());
}
}
        else{System.out.println(files.getAbsolutePath());}
}
}

递归的时候要小心出现死循环

void method(){
    mehtod();
}

这样子就死循环了

运用递归思想,可以减小重复性代码的长度,作用和循环体差不多,但是能做循环体做不到的事