close
遞迴(Recursion)
通過呼叫自己來達成目標,
初學者會覺得難以理解,
因為我們的程式是從上到下左到右去執行,
但是遞迴要從後面開始看,
再加上對return所回傳的值感到困惑,
下面來釐清一下return到底回傳什麼?
public static int add(int num){ return num; }
int a = add(5); // a=5 System.out.println(add(5)); //System.out.println(5);
除了回傳值,
遞迴程式還會包含一個結束條件,
public static int add(int num){ if(num == 0) return -1; return num; }
如果沒有結束的條件,就會形成無限迴圈,就好像下面這樣
for(int i=0;;i++){ } //or while(true){ }
上面講了兩個遞迴所包含的條件
1.呼叫自己
2.結束條件
public static int add(int num){ if(num == 0) return 0; return num+add(num-1); }
至於執行的過程,
可以想成是俄羅斯套娃,
不開到後面不知道裡面有多少個。
下面的網址是程式的執行過程,不懂上面的程式如何執行可以觀看。
https://www.youtube.com/watch?v=LUXYTsE8cvU
文章標籤
全站熱搜
留言列表