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类部分笔记

浙公网安备 33010602011771号