遞歸刪除文件,遞歸計算1+2+...+100

/**
 * 遞歸:
 * 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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章