JAVA 之 递归

递归:指在当前方法内调用自己的这种现象。(我调我自己)


递归的分类:
递归分为两种,直接递归和间接递归。
直接递归称为方法自身调用自己。
间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。


注意事项:
1.递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
2.在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
3.构造方法,禁止递归

 

递归打印多级目录

public class DiGuiDemo2 {
    public static void main(String[] args) {
       // 创建File对象  
        File dir  = new File("D:\\aaa");
       // 调用打印目录方法  
        printDir(dir);
    }
    public static void  printDir(File dir) {
       // 获取子文件和目录  
        File[] files = dir.listFiles();
       // 循环打印  
       /*  
         判断:  
         当是文件时,打印绝对路径.  
         当是目录时,继续调用打印目录的方法,形成递归调用.  
       */  
        for (File file : files) {
     // 判断        
            if (file.isFile()) {
               // 是文件,输出文件绝对路径  
                System.out.println("文件名:"+ file.getAbsolutePath());
            } else {
               // 是目录,输出目录绝对路径  
                System.out.println("目录:"+file.getAbsolutePath());
// 继续遍历,调用printDir,形成递归  
                printDir(file);
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值