首先,递归:是方法内部调用方法的现象
注意事项:递归一定要有出口,否则就是死递归;
递归不要次数太多,否则就会内存溢出;
递归使用分析
递归在使用中,一般需要if....else....语句
思路:
1、出口:一般用已知项作为出口;
2、规律:寻找规律
举例:如5!
规律:5!= 5*4*3*2*1 =5*4!
n! = n*(n-1)!
方法:fun(n)= n!
出口:1
public static int fun(int n){
if (n = 1) {
return 1;
}else
return n*fun(n-1)
}
/*
需求:显示目录"e:\\"下以".java"为后缀的文件
思路:
1、创建封装目录
2、获取该目录下的所有文件及文件夹的File数组
3、遍历数组
4、判断是否是目录
是:继续从第2步开始 (递归:方法内调用方法)
否:输出以".java"为后缀的文件
*/
class FileDemo {
public static void main(String[] args) {
File file = new File("e:\\");
showFile(file);
}
public static void showFile(File file) {
//获取该目录下的所有文件及文件夹的File数组
File[] file1 = file.listFiles();
//遍历数组
for(File f : file1) {
if (f.isDirectory()) {
showFile(f);//递归
}else {
if(f.getName().endswith(".java")){
Sysotem.out.println(f.getAbsolutePath());
}
}
}
}
}
//删除文件下的所有文件即目录
public static void deleteFile(File file) {
File[] file1 = file.listFiles();
//if(file1 != null)
for (File f : file1) {
if (f.isFile()) {
System.out.println(f.getName+":"+f.delete());
}else
deleteFile(file);
}
System.out.println(file.getName+":"+file.delete);
} |