프로그래밍을 하다 보면 반복문(루프) 없이 일련의 숫자를 출력해야 하는 경우가 있습니다. Java에서는 재귀 함수(recursion)를 활용하면 for나 while 같은 반복문을 사용하지 않고도 손쉽게 숫자 시리즈를 출력할 수 있습니다. 아래 예제를 통해 그 방법을 살펴보겠습니다.
예제 코드
public class Demo{
public static void main(String[] args){
int my_num = 0;
System.out.println("The numbers without using loop have been printed below");
print_without_loop(my_num);
}
public static void print_without_loop(int my_num){
if(my_num <= 15){
System.out.print(my_num + ",");
print_without_loop(my_num + 1);
}
}
}출력 결과
The numbers without using loop have been printed below
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
코드 동작 원리
'Demo'라는 이름의 클래스에는 main 메서드가 포함되어 있으며, 여기서 변수 my_num이 0으로 초기화됩니다. 이후 print_without_loop 메서드가 호출되어 숫자 출력 작업이 시작됩니다.
print_without_loop 메서드는 자기 자신을 다시 호출하는 재귀(recursion) 방식으로 구현되어 있습니다. 메서드가 호출될 때마다 전달받은 숫자가 15 이하인지 조건을 검사하고, 조건이 참이면 해당 숫자를 출력한 뒤 숫자를 1씩 증가시키며 자기 자신을 다시 호출합니다.
숫자가 15에 도달하면 조건식이 거짓이 되어 더 이상 재귀 호출이 발생하지 않고 메서드 실행이 종료됩니다. 이처럼 재귀 호출은 반복문과 동일한 효과를 내면서도 루프 구문 없이 반복 작업을 수행할 수 있게 해주는 강력한 기법입니다.