public class StackTrackTest {
public static int factorial(int n)
{
System.out.println("factorial("+n+"):");
var walker=StackWalker.getInstance();
//walker.forEach(stackFrame -> {
//System.out.println(stackFrame);
//});
walker.forEach(System.out::println);
int r;
if(n<=1)
r=1;
else
r=n*factorial(n-1);
System.out.println("return "+r);
return r;
}
public static void main(String[] args) {
try(var in=new Scanner(System.in))
{
System.out.println("Enter n:");
int n=in.nextInt();
factorial(n);
}
}
}
打印递归阶乘函数的堆栈轨迹
最新推荐文章于 2021-02-05 10:41:51 发布