递归
递归概述:
递归就是方法自己调用自己。递归必须要有出口,否则容易导致栈内存溢出。
递归用法:
1、递归求5的阶乘
1 public class Test2 {
2
3 public static void main(String[] args) {
4 int sum = Factorial(5);
5 System.out.println("5的阶乘等于"+sum);
6 }
7
8 public static int Factorial(int i){
9 if(i==1){
10 return 1;
11 }
12 return i*Factorial(i-1);
13 }
14
15 }
2、递归打印文件夹
1 public class Test2 {
2
3 public static void main(String[] args) {
4 Recursion("D:\\"); //需要查找的磁盘
5 }
6
7 public static void Recursion(String Path) {
8 File file = new File(Path);
9 File[] listFiles = file.listFiles(); //获取到目录下所有的文件(夹)的 File[].
10 if (listFiles != null) { //File[]不为空
11 for (File file2 : listFiles) {
12 if (file2.isFile()) { //如果是文件
13 System.out.println(file2.getName());
14 } else if (file2.isDirectory()) { //如果是文件夹
15 Recursion(file2.getAbsolutePath()); //递归继续查找
16 }
17 }
18 }
19 }
20
21 }
随笔说:
递归的调用次数不能过多,递归必须要有出口,构造方法不能递归。 递归必备:出口、规律。