alice9547   2년 전

온라인 컴파일러에서는 잘만 돌아가는데 여기서는 런타임에러가 계속 생기네요

에러가 나는 이유가 궁금합니다

wizardrabbit   2년 전

안녕하세요!

디버깅 결과 1이 입력으로 들어올 경우에만 오류가 발생하는 것을 확인했습니다.

만약 1이 입력으로 들어온다면, 7번째 줄의 for 문에서 1...N-1 의 범위는 1...0이 됩니다. for문의 시작점보다 끝점이 더 크기가 작은 경우가 생깁니다. 이 경우 오류가 발생하게 됩니다. 에러 메시지에도 lowerBound <= upperBound 여야 한다고 적혀 있습니다.

Fatal error: Range requires lowerBound <= upperBound

해당 문제에 따르면 N 값으로 1이 들어올 경우 "**" 을 출력하면 된다는 것을 쉽게 유추할 수 있으니, 저는 해당 코드에서 N = 1 일 경우를 따로 검사해 1일 경우에만 "**"을 출력하고, 1이 아닐 경우 올려주신 코드 그대로 실행되도록 하여 문제를 해결했습니다.

어쨌든 1이 입력으로 들어오는 경우만 for 문으로 인해 오류가 발생하니, 그 부분에 대해 적절히 예외를 처리해 주시면 될 것 같습니다!

댓글을 작성하려면 로그인해야 합니다.