javaSE 笔记 递归

递归

从编程角度来看,就是在方法中调用方法
递归解决问题,首先要定义一个方法。然后把一个大问题转化为与原问题相似的规模较小的问题,这样的话程序比较小,另外注意需要给递归一个出口
eg:

public static int f(int n ){
     if (n==1 || n==2){
        return 1;
    } else {
         return f(n-1) + f(n-2)
    }
}

上面的if就是出口,如果不给出口,会出现栈内存溢出。

递归求阶乘

黑马视频P277,可以看下面这个案例的内存图,很直观
public static int jc(int n ){
if (n==1){
return 1;
} else {
return n * jc(n-1)
}
}
同样可以看出大阶乘被转换为一个个的小阶乘问题,直到小到一个常识,1!= 1 , 从而将其设置为出口

递归可以用来遍历目录

见File类部分笔记

posted @ 2021-08-26 12:58  Lanezzz  阅读(27)  评论(0)    收藏  举报