A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 低调的我 中级黑马   /  2014-12-17 22:18  /  1162 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看了好几遍了还不怎么明白,有人能解释下吗

11 个回复

倒序浏览
一个方法反复调用自身,有点像循环
回复 使用道具 举报
函数内部调用函数,里面需要设置结束条件
回复 使用道具 举报
用递归,就要有出口,和规律,下面是代码举例,希望对你有帮助,
package com.itheima;

/**
* 1.求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
*
* @author  思路分析:从前10项数列分析相邻的三个数:第一位+第二位=第三位 递归算法!
*  出口:第一项和第二项已知
*  规律:第三项的值是前两项之和
*/
public class Test1 {

        public static void main(String[] args) {
                //
                System.out.println(fun(30));
        }
/**
*
* @返回值类型 int
* @参数列表 int n
* 问n项数,那么n-1和n-2项数是多少?
*
*/
        public static int fun(int n) {
                //出口就是n == 1,n == 2
                if (n == 1) {
                        return 1;
                } else if (n == 2)
                        return 1;
                else {
                        //这就是规律
                        return fun(n - 1) + fun(n - 2);
                }
        }
}
回复 使用道具 举报
循环是有次数限制,而有时候做的循环自己也不知道要循环多少次,那这个时候怎么办呢!
在方法中进行操作,然后判断是否需要继续操作,如果需要,调用本身,不需要就跳出 , 这样就把操作和判断又执行了一次,
直到判断不成立时,跳出 !  这个过程就是递归
回复 使用道具 举报
你可以去画成一个图,路线就是主函数一步一步下来,从return一步一步返回的地方.,注意结合内存.当时是看了一个视频,他画了个图,然后就理解了,
回复 使用道具 举报
重复调用自己
回复 使用道具 举报
大圈套小圈
回复 使用道具 举报
自己调用自己,当然得有出口,比如读取目录的时候就用这个
回复 使用道具 举报
你可以顺着语句执行的顺序理一理。
回复 使用道具 举报
所谓递归调用就是一个函数直接或者间接地调用自身来完成一些操作,当然必须存在可以结束的条件限制,否则就成死循环了!
回复 使用道具 举报
dwy_hm 中级黑马 2014-12-18 21:47:09
12#
本质是数学思想。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马