猿问

java函式自己调用自己

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大神们解释一下,谢谢大家了。

郎朗坤
浏览 657回答 4
4回答

扬帆大鱼

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

holdtom

把你的代码调整成如下格式: 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
随时随地看视频慕课网APP

相关分类

Java
我要回答