public class CoreTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(goFigure(60));
}
public static int goFigure(int x)
{
if (x < 100)
x = goFigure(x + 10);
return (x - 1);
}
}
以上是java代码,有JAVA方法名为goFigure()。我从main方法调用了这个方法。在这里,我得到输出为95。
我调试了这段代码,但面临疑问,即在执行return语句后,它将转到x = goFigure(x + 10)
。需要理解为什么它会走这条路。
请让我理解这个概念。
答案 0 :(得分:2)
goFigure(60)
goFigure(70)
goFigure(80)
goFigure(90)
goFigure(100)
return 99
return 98
return 97
return 96
return 95
每个调用都有自己的参数x(可能还有局部变量)。
所以你从60到达100,需要5个递归调用,60 + 4 * 10 + 5 * -1 = 95