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