递归删除文件,递归计算1+2+...+100

来源:互联网 发布:mac电脑数据恢复 编辑:程序博客网 时间:2024/06/06 17:15
/** * 递归: * 1:首先考虑极端情况,什么时候停止 * 2:每种可能发生的情况是否都考虑了 * 3:重复的事情,调用该方法即可 *///a目录下有多级文件和目录,递归删除它-------------public class FileRecursion {    public static void main(String[] args) {        File file = new File("a");        deleteFile2(file);    }    /**     * 假设循环到最底层,是文件则被删除     * 如果是个目录,File[] subs 的值为空,for循环无意义;目录被删除     */    public static void deleteFile(File file){        if(file.exists()){//操作前提:文件或目录存在            if(file.isDirectory()){//是目录,循环删除目录下的文件后,再删除该目录                File[] subs = file.listFiles();                for(File sub : subs){                    deleteFile(sub);                }                file.delete();            }else{//是文件,直接删除                file.delete();            }        }    }    /**     * 此方法与上个方法等价,代码更简洁     * 无论是目录还是文件,都要删除     */    public static void deleteFile2(File file){        if(file.exists()){//操作前提:文件或目录存在            if(file.isDirectory()){//是目录,循环删除目录下的文件                File[] subs = file.listFiles();                for(File sub : subs){                    deleteFile(sub);                }            }            file.delete();//无论是目录还是文件,都要删除        }    }}//递归计算1+2+3+。。。+100=5050-------------public class OneToHundredPlus {    public static void main(String[] args) {        int n = 100;        System.out.println();    }    //当前的数字累加之前的数字,直到1    public static int numPlus(int n){        if(n<=1){            return 1;        }        return n+numPlus(n-1);    }}
0 0