본문 바로가기

Java/이론

[Java] 재귀적 호출(recursive call) - 등차수열

재귀적 호출(recursive call)이란 

 

함수 속에서 자기 자신(이 함수)을 호출하는 것을 말합니다.

 

즉 함수를 반복해서 계속 실행하는 것입니다.

 

함수를 부르는 것은 느린 작업이기 떄문에

 

반복문인 for을 써서 구현할 수도 있지만

 

재귀적 호출을 이용해서 기억에서 테스트할 떄

 

이런 알고르짐을 응용해서 문제를 출제하는 경향이

 

있기 때문에 작성하는 법을 숙지해야 합니다.

 

 

 

예제로 등차 수열을 구현해보겠습니다.

 

사용자에게 숫자 하나를 입력받으면

 

해당 값까지 등차수열을 더한 값을 출력하는 함수입니다.

 

import java.util.Scanner;

 

public class FMain1 {

 

 

public static int Input() {

System.out.println("값을 하나 입력하세요.");

return new Scanner(System.in).nextInt();

}

public static int add(int n) {

return (n == 1 ? 1 : add(n-1) + n);

}

public static void main(String[] args) {

System.out.println(add(Input()));

}

}

 

코드는 간단합니다.

 

n == 1 일 떄는 1이고 

 

n이 1이 아닐 때는 add(n-1)에 n 값을 더해주면됩니다.

 

즉 add(1)이 아니라면

 

add(n) 내에서 add(n-1)을 호출해야 합니다.

 

출력 내용

 

4를 입력하면

 

1 + 2 + 3+ 4 가 돼서

 

10이 출력되는 구조입니다.

 

최종적으로 add(1)이되면

 

1을 더해주고 값을 반환하게 됩니다.

 

 

 

 

 

이번 시간에는 등차 수열을 통해

 

재귀적 호출에대해서 배워봤습니다.

 

함수 내에서 함수를 한 번 더 실행해서

 

반복하는 기능이었습니다.

 

감사합니다!

 

'Java > 이론' 카테고리의 다른 글

[Java] switch - case 문  (0) 2024.11.26
[Java] 조건문  (0) 2024.11.26
[Java] 함수의 구조  (2) 2024.11.25
[Java] 함수의 종류  (0) 2024.11.25
[Java] 오버로딩 (Overloading)  (0) 2024.11.22