java实现5 4 3 2 1递归_递归及递归的使用

目录

1. 递归:方法自己调用自己

2. 在Java中实现递归打印文件夹

递归:方法自己调用自己

1.递归的分类:

递归分为两种,直接递归和间接递归。

直接递归称为方法自身调用自己。

间接递归可以A方法调用B方法,B方法调用c方法,c方法调用A方法。

2.注意事项:

递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

构造方法,禁止递归

3.递归的使用前提:

当调用方法时方法的主体不变,每次调用方法的参数不同,可以调用递归

在Java中实现递归打印文件夹

1.实现方法

/**

* 方法名:show01

* 返回值类型:void

* 参数列表:File file

*/

/private static void show01(File file) {

//打印被遍历的目录名称,打印文件夹

System.out.println(file);

//调用listFiles()方法,用File类型的数组来接收listFiles()方法的返回值

File[] files = file.listFiles();

//使用增强for遍历数组

for (File f : files) {

//关键if判断,如果是一个文件夹则会再从开头来一遍,除非不是文件夹才会else下打印

if (f.isDirectory()){

show01(f);

}else {

//打印文件,不是打印文件夹哦

System.out.println(f);

}

}

}

2.主方法

public static void main(String[] args) {

File f1 = new File("D:\\test");

show01(f1);

}

3.最终效果

D:\test

D:\test\a1

D:\test\a1\a1a1

D:\test\a1\a1a1\com

D:\test\a1\a1a1\com\secret.txt

D:\test\b2

D:\test\b2\b2.txt

D:\test\b2\well

D:\test\c3

D:\test\d4

D:\test\d4\wuwuwu.mp4

4.实现文件的搜索(匹配)

/**

* 方法名:show01

* 返回值类型:void

* 参数列表:File file

*/

private static void show01(File file) {

// System.out.println(file); //打印被遍历的目录名称

File[] files = file.listFiles();

for (File f : files) {

if (f.isDirectory()){

show01(f);

}else {

//关键判断,调用toString()方法再调用String类的endWith方法匹配文件的后缀

if (f.toString().endsWith(".txt")){

System.out.println(f);

}

}

}

}

}

5.文件搜索结果

D:\test\a1\a1a1\com\secret.txt

D:\test\b2\b2.txt

其他文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值