JAVA——进阶语法——递归算法的概念和简单应用举例

一、概念

递归:方法调用自己的一种编程方式
注意:方法里必须有结束的途径

二、简单应用举例

1.定义一个方法求阶乘

(1)问题

例如:想要求5的阶乘,即54321的结果,可以使用递归算法实现

(2)代码及注释

public class Test1 {

	public static void main(String[] args) {
		int n = fun(5);
		System.out.println(n);
	}

	//定义一个方法求阶乘
	public static int fun(int n) {
		if(n == 0) {
			return 1;
		}else {
			//使用递归,继续调用这个方法
			return n*fun(n-1);
		}
	}
	//第一次调用:return5*fun(4)
	//第二次调用:return5*4*fun(3)
	//第三次调用:return5*4*3*fun(2)
	//第四次调用:return5*4*3*2*fun(1)
	//第五次调用:return5*4*3*2*1*fun(0)
	//第六次调用:return5*4*3*2*1*1=120
}

运行结果:
在这里插入图片描述

2.统计D盘总共有多少个文件

(1)问题

例如:想要得到D盘下总共有多少个文件(包含文件夹里的文件),可以使用递归算法实现

(2)代码及注释

import java.io.File;

public class Exam1 {
	
	public static int count = 0;
	
	public static void main(String[] args) {

		//新建一个D盘路径
		File d = new File("D:\\");
		fun(d);
		System.out.println(count);
	}
	//定义一个方法统计文件数量,接收传入参数是一个File对象
	public static void fun(File file) {
		//定义一个File类型的列表,存储这个File对象下的File对象
		File[] list = file.listFiles();
		//遍历这个File对象列表,如果是文件,就count+1,如果是文件夹,就继续调用这个fun方法
		for(File f:list) {
			try {
				if(f.isFile()) {
					count++;
				}else {
					fun(f);
				}
			}catch(Exception e) {
				
			}
		}
	}
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_56039103/article/details/124277590