[Java] 재귀호출에 대한 이야기

재귀 호출(recursive call)




메서드의 내부에서 메서드 자기 자신을 다시 호출하는것

재귀호출은 반복문이 무한반복에 빠지는 것처럼 무한호출이 되기 쉬우므로 주의해야한다.


재귀호출은 다소 효율이 떨어진다는 단점이 있다.! 반복적으로 메서드를 호출하는 것이기 때문에 메서드를 호출하는데드는 비용이 추가적으로 발생하기 때문이다.

그래도 가능하면 재귀호출을 통해 간단한 코드를 작성하는 것이 좋으며, 성능에 문제가 되는 경우에만 재귀호출 대신 반복문을 사용하도록 하자.

 

대표적인 재귀호출의 예는 팩토리얼(factorial)을 구하는 것.

 

static long factorial(int n)

{

      long result =0;

 

if( n == 1){

result =1;

}else{

result =n *  factorial(n-1) ;   // 다시 자기 자신을 호출한다.

}

return result ;

}

 

//이 함수를 삼항연산자 한줄로 요약하면

// return (n == 1) ? 1 : n * factorial(n-1);

}