我努力按照這個 '所謂簡單的' 遞歸過程繼遞歸
void display(int x, int y) {
int[] a = {0,1,2,3};
if(x==y) {
System.out.print(a[x]+" ");
}
else {
int mid=(x+y)/2;
display(x, mid);
display(mid+1, y);
}
第一個print語句x = 0和Y = 0和MID = 0之後 - 這我明白。下一個通話似乎是第二個通話顯示(mid + 1,y);現在突然Y = 1 - 沒有這種變化發生的地方 - 打印語句被執行,則y = 3.Obviously調試器的值不遵循這一點的最好辦法 - 我明白了什麼是在factoral例子發生,而且可以在筆和紙上遵循它 - 是否有可能看到這個例子中發生了什麼?任何幫助將不勝感激。
「第一打印語句x = 0和y = 0的後」 - 僅當最初的調用是'display(0,0)'。 – 2011-04-09 01:18:05
@Matt - 對不起,我的意思是在if語句正確後的第一次,我的初始調用是(0,3)。 – 2011-04-09 01:47:39