프로그래밍/C++
C++ 문법 - 재귀함수
게으른구름
2018. 1. 28. 18:42
< 재귀함수 (recursion) >
재귀함수는 내부에서 자기 자신을 호출하는 함수를 의미합니다.
return을 만나 함수가 종료되기 전에 먼저 다시 호출된 함수를 실행하고 그 뒤에 첫 번째로 실행된 함수를 마저 실행합니다.
이를 이용해 다음과 같이 사용할 수 없습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <iostream> using namespace std; int test(int a) { if (a == 0) { cout << "test 종료" << endl; return 0; } cout << a << endl; return test(a - 1); } int main() { test(5); return 0; } | cs |
위의 재귀함수 작동 원리가 잘 이해되지 않는다면 다음의 예제를 보시기 바랍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <iostream> using namespace std; int main() { for (int a = 5; ; a--) { if (a == 0) { cout << "test 종료" << endl; return 0; } cout << a << endl; } return 0; } | cs |
위의 재귀함수를 반복문으로 만들어봤습니다.
for 괄호 안의 2번 칸 '조건'이 비워져있다는 점(무한반복)을 유의해서 봐주세요.