<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>
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
무한재귀함수일 경우에 이처럼 에러가 뜨게된다. 그러므로 재귀함수를 만들때 이러한점을 주의하자.
'JavaScript' 카테고리의 다른 글
자바스크립트 객체생성 및 메소드 설정하기 (0) | 2013.08.04 |
---|---|
자바스크립트 객체생성하기(객체에 속성부여하기) (0) | 2013.08.03 |
자바스크립트 반환값이 있는 함수 만들기 (0) | 2013.08.03 |
자바스크립트 전역변수 (0) | 2013.08.03 |
자바스크립트 지역변수 (0) | 2013.08.03 |