我正在研究一個使用遞歸函數的程序。如何退出遞歸函數?
我的問題是當遞歸函數的工作完成時,控件轉移到下一個函數,它在完成下一個函數的工作後返回遞歸函數。
我需要一些代碼,可以強制控制被轉回功能。我不想退出我的程序。
public void function1(a, num)
{
if(a >= num)
{
if(a > num)
function1(a, num);
else if(a == num)
{
a++;
function1(a, num)
}
}
else
function2(a, num)
}
public void function2(a, num)
{
//print result;
}
每次我打電話function1
,我表演的變量a
和num
一些變化。但問題是,在某些情況下,當function2
被調用時,控制權再次傳遞給function1
。你能否提供一些防止這種情況的代碼?它是我設計的時間表生成器的一部分。
對於最初'a> num'的情況,您的遞歸不會停止,因爲您不會在遞歸步驟之間更改任何內容。嘗試自己追蹤代碼,說a = 1,num = 0。 – Vlad