为了账号安全,请及时绑定邮箱和手机立即绑定

java函式自己调用自己

java函式自己调用自己

郎朗坤 2019-02-18 08:10:20
public class Recursion { public static void main(String[] args) { new Recursion().run(); } public void run(){ int value = f(3); System.out.println(value); } public int f(int value){ if (value == 1) { return 1; } else { return f(value - 1) + 1; } } }java编程新手,以上程序是函式自己调用自己,不过我无法理解,求IT大神们解释一下,谢谢大家了。
查看完整描述

4 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

这是递归运算,关键词给你了 百度解释很多

查看完整回答
反对 回复 2019-03-01
?
holdtom

TA贡献1805条经验 获得超10个赞

把你的代码调整成如下格式:

public static void main(String[] args) {
    f(3);
}

private static int f(int value) {
    if (value == 1) {
        return 1;
    } else {
        int ret = f(value - 1) + 1;
        return ret;
    }
}

f(3)最终返回3,函数的调用关系如下:

main
    → f(3)                // f(3) 等于 f(2) + 1 
        → f(2) + 1        // 递进
            → f(1) + 1    // 递进
                → f(1)    // 遇到临界值,即 value == 1
                ← 1       // 返回
            ← 1 + 1       // 回归
        ← 2 + 1           // 回归
    ← 3                   // f(3)返回3
查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 656 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号