递归

概述

在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。简单来讲就是在当前函数表达式内再使用本身的表达式。

在编程语言中,指在当前方法内直接或间接调用自己的这种现象。如:

public static void a(){
	a();
}

递归求和

请使用递归计算从1–100的所有数的累加和。

public class Test22 {
    public static void main(String[] args) {
        System.out.println("1-100累加和:"+leijia(100));
    }

    private static int leijia(int n) {
        if (n == 1) {
            return 1;
        }
        return n+leijia(n-1);
    }
}

注意:递归一定要有条件限定,保证递归能够停止下来,次数不要太多,否则会发生栈内存溢出。

目录的遍历

使用递归遍历一个多级目录,打印所有文件的“绝对路径”。

public class Test23 {
    public static void main(String[] args) {
        File file = new File("D:\\IdeaProject\\JavaBase136\\day15\\src");
        printFiles(file);
    }

    private static void printFiles(File file) {
        //先判断是否存在
        if (file.exists()) {
            if (file.isDirectory()) {//是目录
                //继续遍历且调用本方法
                for (File f : file.listFiles()) {
                    printFiles(f);
                }
            } else if (file.isFile()) {//是文件
                //打印文件
                System.out.println(file.getAbsolutePath());
            }
        } else {//不存在
            System.out.println("该目录或文件不存在...");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值