본문으로 바로가기

java 재귀 호출, 재귀 함수

category Language/JAVA 2018.04.05 14:19
java 재귀 호출, 재귀 함수

재귀함수란?
자기 자신을 특정 조건이 될 때까지 계속 호출하는 함수이다.
그래서 함수 안에 if조건문이 들어가 있고 끝나는 조건이 파라메터로 들어간다.
그리고 return에서 자기 자신을 호출한다.

1.return 값이 있을 때

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package examples;
 
public class RecursiveExam {
 
    private int count(int idx) {
        System.out.println("idx:"+idx);
        if(idx == 0return 0;
        return count(idx -1);
    }
 
    public void run() {
        int result = count(10);
        System.out.println("result:"+result);
    }
 
    public static void main(String[] args) {
        new RecursiveExam().run();
    }
}
 

c

결과

idx:10

idx:9

idx:8

idx:7

idx:6

idx:5

idx:4

idx:3

idx:2

idx:1

idx:0

result:0


위와 같이 result는 0인데 특정 조건이 될 때 까지 print문이 계속 실행된 것을 볼 수 있다.

print문이 계속 실행 되었다는 것을 해당 method가 계속 호출이 되었다는 뜻이다.


2.void일 때

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package recursives;
 
public class RecursiveVoidExam {
 
    private void targetRecursive(int idx){
        System.out.println("idx:"+idx);
        if(idx < 100){
            targetRecursive(idx + 10);
        }
    }
 
    private void run() {
        targetRecursive(0);
    }
 
    public static void main(String[] args) {
        new RecursiveVoidExam().run();
 
    }
}
 
cs

결과

idx:0

idx:10

idx:20

idx:30

idx:40

idx:50

idx:60

idx:70

idx:80

idx:90

idx:100


void라도 종료 조건을 넣고 자기 자신을 호출 할 수 있다.


end.




댓글을 달아 주세요