저는 자바 프로그래밍을 처음 접했고 선생님은 우리에게 재귀 개념을 가르쳐 주었고 조금 복잡했습니다. 나는 그것이 루프 (4의 계승과 같음)처럼 작동한다는 것을 이해했지만, 왜 아직도 그렇게 작동하는지 이해하지 못한다. 이 주제에 대한 자세한 설명을 볼 수 있습니까? 여기에 선생님이 설명했던 코드와 그림이 있습니다. 다음 이미지에서 자바에서 재귀의 개념을 이해하는 방법?
package javaapplication1;
public class JavaApplication1 {
static int factorial(int n){
int t;
if(n == 0){
return 1;
} else {
t = factorial(n - 1);
return n * t;
}
}
public static void main(String[] args) {
System.out.println(factorial(5));
}
}
파란색 색상 스택 권선 나타내며, 녹색 스택 해제되고, 다시 나는 감기 스택 모르는 및 청산입니다. 하나는 작업이 유사한 작은 작업으로 분류 될 수 있음을 알고 때 (우리가 특정 조건을 충족 할 때까지)
http://i.stack.imgur.com/pjqJy.png
참조. http://stackoverflow.com/questions/26041546/ – Alnitak
재귀 - 결국 (다시) 스스로를 다시 호출하는 함수 호출. winding = 자신을 다시 호출, unwinding = 이전 재귀 호출에서 복귀. –
Eclipse와 같은 IDE에서 해당 프로그램을 디버깅하십시오. 그러면 흐름을 자세히 따라갈 수 있습니다. – Magnilex