/**
* 递归:
* 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
最新推荐文章于 2021-02-12 14:50:22 发布