CODEDRAGON ㆍDevelopment/Java
잘못된 재귀 메소드 정의
종료조건이 만독되지 않으면 무한 루프에 빠질 수 있습니다.
종료조건 및 종료조건의 검사위치를 로직 상 점검 하시기 바랍니다.
종료조건은 메소드의 실행과 재귀 메소드 실행되는 사이에 존재해야 됩니다.
소스코드
public class ResursiveEx02 {
public static void main(String[] args) {
showJava(3); }
/*잘못된 재귀 메소드 정의*/ /* public static void showJava(int cnt) { System.out.println("JAVA ");
//재귀메소드 호출 showJava(cnt--); //Exception in thread "main" java.lang.StackOverflowError
//종료조건 if(cnt==1) return; }*/
/* 해결방법 1) 증감을 post증가에서 pre증가로 변경 2) 종료 조건 위치 변경 : 종료조건은 메소드의 실행과 재귀 메소드 실행되는 사이에 존재해야 합니다. */
/*수정환 재귀 메소드 정의*/ public static void showJava(int cnt) { System.out.println("JAVA ");
//종료조건 if(cnt==1) return;
//post증가로 면경 및 위치변경 showJava(--cnt); }
} |
출력 결과
잘못된 재귀 메소드 정의
수정환 재귀 메소드 정의
'Development > Java' 카테고리의 다른 글
ConsoleOutputEx01 - System.out.print vs System.out.println (0) | 2015.07.04 |
---|---|
System.out.println( ) (0) | 2015.07.03 |
RecursiveEx01-재귀 함수 호출 (0) | 2015.06.30 |
VariableScopeEx01-변수의 범위 확인 (0) | 2015.06.29 |
FunctionEx04-키워드 return의 역할 (0) | 2015.06.23 |