Recursion 递归顺序为什么会上升?

Recursion 递归顺序为什么会上升?,recursion,Recursion,所以请帮助我理解递归是如何工作的。为什么下面的代码按该顺序打印出1,2,3,4,5,6?为什么不下降呢?为什么上升呢 public class Recursion { public static void main(String[]args){ Recursion r = new Recursion(); r.blag(6); } int blag(int num){ if(num!=0){ bl

所以请帮助我理解递归是如何工作的。为什么下面的代码按该顺序打印出1,2,3,4,5,6?为什么不下降呢?为什么上升呢

public class Recursion {

    public static void main(String[]args){
        Recursion r = new Recursion();
        r.blag(6);
    }

    int blag(int num){
        if(num!=0){
            blag(num-1);
            System.out.println(num);
        }
        return 10;
    }

}

大概是这样的:

int getTriNum(int num){
    if(num==1){
        return 1;
    }else{
        return(num+getTriNum(num-1));
    }
}

请解释如果为num输入6,它是如何产生数字21的。

在打印之前调用递归。一旦递归得到num=1。将忽略返回值10,并打印值1。然后在num等于2时返回调用。当函数调用返回时。它们按数字顺序打印出来。 blagnum-1; System.out.printlnum

在第二个示例中,返回时会添加这些数字。6+5+4+3+2+1=21在blag中,您有以下代码:

if (num != 0){
    blag(num - 1);
    System.out.println(num);
}
请注意,在打印数字之前,blagnum-1再次被递归调用。因此,数字按从小到大的顺序打印