메소드 사용 + 파일 디렉토리 조작
선언 + 호출
test();
}
//재귀 메소드(Recursive Method) <- 자기가 자기를 계속 호출하는 메소드
public static void test() {
System.out.println("메소드 호출");
//java.lang.StackOverflowError
test(); //자기가 자기를 호출 > 에러 발생(X) > 재귀 호출(Recursive Call)
//쌍둥이를 부른거라고 생각 -> 같은 애는 아니지만 메소드를 계속 호출 : 무한 루프 > 메모리 영역이 계속 쌓이고 쌓임
//뭔가를 반복적으로 하고 싶을때 함. 메소드 호출 특성을 통한 반복
재귀메소드 예시 1)
private static void m14() {
int n = 1;
m15(n);
}
private static void m15(int n) {
//for문이나 while문이 재귀호출을 대체하지 못하는 때가 있음 > 그때 사용을 위해 배우기
System.out.println(n);
n++;
// if(조건) { //조건은 정해진게 없음
if(n < 10) {
m15(n); //재귀 호출
} //자기 자신을 호출하는데 호출하면서 점점 커짐(n++ 때문)
}
재귀메소드 예시 2) 팩토리얼
private static void m16() {
팩토리얼
4! = 4 * 3 * 2 * 1 = 24
int n = 4;
int result = m17(n);
System.out.println(result);
result = factorial(n);
System.out.printf("%d! = %d\n", n, result);
}
private static int m17(int n) {
System.out.println(n);
int result = (n == 1) ? 1 : m17(n-1); //n이 1이면 1, 아니면 n-1을 다시 m17(int n)값으로 돌려줌
return result;
}
private static int factorial(int n) {
return (n == 1) ? 1 : n * factorial(n - 1); // 재귀 호출
} //n이 1이면 1출력, 아니면 n * factorial(n-1)

'[JAVA] 정리 > 파일(file)' 카테고리의 다른 글
| 파일(file) - 6. 텍스트 입출력_기본 지식 (0) | 2023.02.27 |
|---|---|
| 파일(file) - 5. 폴더 속 폴더 속 파일 보기 (0) | 2023.02.27 |
| 파일(file) - 3. 폴더 조작하기(새폴더 만들기, 폴더명 수정, 이동하기, 폴더 삭제하기) (0) | 2023.02.26 |
| 파일(file) - 2. 파일 조작(새로 만들기, 파일명 수정, 파일 이동, 파일 삭제) (0) | 2023.02.26 |
| 파일(file) - 1. 파일, 폴더 정보 확인 (0) | 2023.02.26 |