我试图理解以下问题:
public class Main {
public static int fact(int n){
if (n == 0){
return 1;
}else{
return n * fact(n - 1);
}
}
public static void main(String[] args){
System.out.print(fact(5));
}
}
当编译器通过时,return n * fact(n - 1);
它实际上是乘以n
还是仅在达到基本情况后才这样做,然后乘以存储在堆栈中的所有值?
注意我对这种递归编码方式仍然很陌生。