JavaScript

자바스크립트 재귀호출함수

bang2001 2013. 8. 3. 16:12

<HTML>

<HEAD>
<TITLE> :::: 자바스크립트 재귀호출함수 :::: </TITLE>

<script language="JavaScript">

function fun_self(num)
{
if(num == 0)
{
return 1;
}
else
{
return (num * fun_self(num-1));
}
}

var my_num = 4;

document.write("<h2>");
document.write(my_num + "의 계승 : " + fun_self(my_num));
document.write("</h2>");

</script>

</HEAD>

<BODY>
  
</BODY>
</HTML>

-----------------------------------------------------------------------------------------

위의 코드는 함수 자기 자신이 스스로 참조하여 호출하는 함수의 형태로 되어있다.
즉 재귀호출함수인 것이다. 위의 함수에서는 어떤 수를 입력받으면 1부터 입력받은수까지의
곱셈을 구하는 함수이다. 결과는 다음과 같이 나오게 된다.

----------------------------------------------------------------------------------------



----------------------------------------------------------------------------------------

함수에 4라는 정수값을 넣어서 4 * 3 * 2 * 1 = 24 라는 결과값을 얻은것이다.
이처럼 자바스크립트에서는 재귀함수를 사용할 수 있다. 하지만 주의해야되는것은
무한재귀함수가 되지 않게끔 주의해야 한다. 

무한재귀함수란 끊임없이 자기 자신을 호출하는 함수를 말한다. 만약 무한재귀함수로 
이루어졌다면 다음과 같은 결과가 나오게 된다.

----------------------------------------------------------------------------------------

<HTML>
<HEAD>
<TITLE> :::: 자바스크립트 무한재귀함수 :::: </TITLE>

<script language="JavaScript">

function self_fun(num)
{
return num + self_fun(num-1);
}

document.write("self_fun(5) : "+self_fun(5));

</script>

</HEAD>

<BODY>
  
</BODY>
</HTML>


----------------------------------------------------------------------------------------



----------------------------------------------------------------------------------------

무한재귀함수일 경우에 이처럼 에러가 뜨게된다. 그러므로 재귀함수를 만들때 이러한점을 주의하자.