我有搞清楚艱難的時間,如何從我的遞歸函數退出如何退出這個遞歸循環?
我的代碼是
public Main()
{
GetFibonacci(5,20);
}
private void GetFibonacci(int StartNUmber, int LastNumber)
{
if (StartNUmber < LastNumber)
{
if (FibonacciRecursiveList.Count == 0 || FibonacciRecursiveList.Count == 1)
{
FibonacciRecursiveList.Add(StartNUmber);
}
else
{
int value = FibonacciRecursiveList[FibonacciRecursiveList.Count - 1] + FibonacciRecursiveList[FibonacciRecursiveList.Count - 2];
FibonacciRecursiveList.Add(value);
}
StartNUmber++;
GetFibonacci(StartNUmber, LastNumber);
}
else
{
return;
}
}
在到達外其他循環的代碼仍然運行
請幫
你是否在代碼上設置了一個斷點來驗證'return'語句是否真的被達到了?我懷疑編譯器是否被破壞,並繼續循環,即使代碼說不。 – 2013-03-16 10:43:06
是的,我已經做到了 – Rohit 2013-03-16 10:43:57
爲什麼要遞歸地調用函數?用一個包含以前值的列表('FibonacciRecursiveList'),你實際上不需要遞歸調用。 – 2013-03-16 10:47:01