public class Recursion {
public static void main(String[] args) {
new Recursion().run();
}
public void run(){
int value = f(3);
System.out.println(value);
}
public int f(int value){
if (value == 1) {
return 1;
} else {
return f(value - 1) + 1;
}
}
}java編程新手,以上程序是函式自己調用自己,不過我無法理解,求IT大神們解釋一下,謝謝大家了。
4 回答

holdtom
TA貢獻1805條經驗 獲得超10個贊
把你的代碼調整成如下格式:
public static void main(String[] args) {
f(3);
}
private static int f(int value) {
if (value == 1) {
return 1;
} else {
int ret = f(value - 1) + 1;
return ret;
}
}
f(3)
最終返回3,函數的調用關系如下:
main
→ f(3) // f(3) 等于 f(2) + 1
→ f(2) + 1 // 遞進
→ f(1) + 1 // 遞進
→ f(1) // 遇到臨界值,即 value == 1
← 1 // 返回
← 1 + 1 // 回歸
← 2 + 1 // 回歸
← 3 // f(3)返回3
添加回答
舉報
0/150
提交
取消