我有搞清楚艰难的时间,如何从我的递归函数退出如何退出这个递归循环?
我的代码是
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