什么是递归:
自己调用自己
递归分为:直接递归和间接递归
1-n的和
public static void main(String[] args) {
int fun = fun(5);//传值 5
System.out.println(fun);//输出
}
private static int fun(int i) {
if (i==1){
//当数字运行到一的时候就给是1 依次相加 比如
// fun(5)+fun(4) fun(4)+fun(3) fun(3)+fun(2) fun(2)+1
5+4+3+2+1 4+3+2+1 3+2+1 2+1
因为if说运行到1就给个数据1 意思是从1加到5
return 1;
}
return i+fun(i-1); //每次相加让i-- 运行一次就减一个数字
}
阶乘
public static void main(String[] args) {
int fun = fun(5);//传值 5
System.out.println(fun);//输出
}
private static int fun(int i) {
if (i==1){
//当数字运行到一的时候就给是1 依次相加 比如
// fun(5)*fun(4) fun(4)*fun(3) fun(3)*fun(2) fun(2)*1
5*4*3*2*1 4*3*2+*1 3*2*1 2*1
因为if说运行到1就给个数据1 意思是从1加到5
return 1;
}
return i*fun(i-1); //每次相加让i-- 运行一次就减一个数字
}
用递给的方式判断文件夹
public static void main(String[] args) {
File f=new File("D:\\软件测试+面试题");
fun(f);
}
private static void fun(File f) {
File[] files = f.listFiles();//把文件分成对象
for (File file : files) {//遍历
if (file.isFile()){//判断是否是文件
System.out.println(file+"文件");
}else {//是文件夹
System.out.println(file+"文件夹");
fun(file);//看看里面还有没有文件
}
}
}
斐波那契数列:
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {//循环10遍
System.out.print(fun(i)+"\t");//传值
}
}
private static int fun(int i) {
if (i==1||i==2){
return 1;
}
return fun(i-1)+fun(i-2);//意思是前两个的数据相加第三个数据是结果
}
使用--递归查找文件或文件夹里面是否有 .java 类型的文件也可以是任意类型如.txt .mp4
public static void main(String[] args) {
File f=new File("D:\\软件测试+面试题\\华测教育软件测试学习视频+资料包(1)\\13-测试开发必学-华测教育");
fun(f);
}
private static void fun(File f) {
File[] files = f.listFiles();//把文件分成对象
for (File file : files) {//遍历
if (file.getName().endsWith(".mp4")){//判断是否是文件里面的.mp4为后缀名的文件
System.out.println(file);
}else {//是文件夹
fun(file);//看文件夹下是否还有.mp4后缀的文件
}
}
}
使用过滤器
public static void main(String[] args) {
File f=new File("D:\\软件测试+面试题\\华测教育软件测试学习视频+资料包(1)\\13-测试开发必学-华测教育");
fun(f);
}
//
private static void fun(File f) {
File[] files = f.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory() ||pathname.getName().endsWith(".txt");
}
});//把文件分成对象
for (File file : files) {//遍历
//
if (file.isFile()){//判断是否是文件
if (file.getName().endsWith(".mp4")){
System.out.println(file);
}
}
else {//是文件夹
fun(file);//看看里面还有没有文件
}
}
}