정보처리기사 실기/프로그래밍

Java Programming 1 (Recursion)

· 코딩마이데이

Call Stack

public static void ONE() {
    System.out.println("1번 첫째줄");
    TWO();
    System.out.println("1번 셋째줄");
}

public static void TWO() {
    System.out.println("2번 첫째줄");
    THREE();
    System.out.println("2번 셋째줄");
}

public static void THREE() {
    System.out.println("3번 첫째줄");
}

public static void main(String[] args) {
    ONE();
}

 

결과값

1번 첫째줄

2번 첫째줄

3번 첫째줄

2번 첫째줄

1번 셋째줄

 

factorial

 

Recursion Example 1

public class RecursionExample1 {
    public static void GetSome(int count) {
        if (count == 0) return;
        System.out.printf("재귀 호출 %d\n", count);
        GetSome(count - 1);
    }

    public static void main(String[] args) {
        GetSome(3);
    }
}

 

결과값

재귀 호출 3
재귀 호출 2
재귀 호출 1

 

 

 

Recursion Example2

public class RecursionExample2 {
    public static void GetSome(int count) {
        if (count == 0) return;
        GetSome(count - 1);
        System.out.printf("재귀 호출 %d\n", count);
    }

    public static void main(String[] args) {
        GetSome(3);
    }
}

 

결과값

재귀 호출 1
재귀 호출 2
재귀 호출 3

 

 

 

 

Recursiom Example 3

public class RecursionExample3 {
    public static void main(String[] args) {
        int result = sum(5, 8);
        System.out.println(result);
    }

    public static int sum(int start, int end) {
        if (end > start)
            return end + sum(start, end - 1);
        else return end;
    }
}

 

결과 값

26