[英]program flow in recursive method in java
class Test {
int i=0;
void method2() {
if(i==6) return;
System.out.print("before");
i++;
method2();
System.out.println("after"):
}
}
如果我從另一個類調用method2()
,那么我想知道程序將如何在此處流動或為什么執行輸出。
遞歸的深入知識可以在這里找到https://en.m.wikipedia.org/wiki/Recursion_(computer_science)就您的程序而言,它會在 i=6 時停止,否則它將繼續打印。 這是因為在編程中,控制流永遠不會被跳過,它遵循控制流,但並不是說它離開了 rest 語句,因此每當生成對函數的新調用時,函數的先前狀態都被推入堆棧 1一個一個,所以堆棧不斷增加,當最終達到結束條件時,它從活動記錄中一一彈出所有函數調用,並完成所需的處理,從而遞歸工作。 它需要堆棧的幫助來進行操作。 無論您從任何地方調用它,程序流始終遵循它的順序。 所以程序流程保持不變。 如果您運行它並添加更多帶有 i 值的打印語句,您將很容易理解它的工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.