为什么递归方法会倒序打印数字?
当我们运行下面的代码时:
tricky2(n - 2);
System.out.print(n);
结果会按照升序打印,这是因为语句System.out.print(n);
在行tricky2(n - 2);
创建的执行分支的最后一个递归调用之后执行。
相反地,当执行下面的代码片段时:
System.out.print(n);
tricky2(n - 2);
数字将在递归调用之前打印在控制台上。因此,数字将按照降序(从高到低)打印出来。
解决方法:调整代码的顺序,将System.out.print(n);
语句放在递归调用之后,以实现按照升序打印数字的目的。