study/Java

Java에서 return문 누락으로 발생하는 오류와 해결 방법

으녕오리 2025. 3. 5. 00:41

문제 발생 배경

Java로 코딩 테스트 문제를 풀다 보니, missing return statement 오류가 발생했다.

오류의 원인과 해결 방법에 대해 알아본다.

 

문제 설명

프로그래머스의 "나머지가 1이 되는 수 찾기" 문제를 풀고 있었다.

이 문제는 주어진 자연수 n에 대해 n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x의 값을 반환하는 문제이다.

처음 코드 작성 시, 다음과 같이 return -1; 을 사용하지 않고 문제를 풀었다.

class Solution {
    public int solution(int n) {
        for (int x = 2; x < n; x++) {
            if (n % x == 1) {
                return x;
            }
        }
    }
}

이 코드에서 return -1;을 사용하지 않아서 missing return statement 오류가 발생했다.

 

문제 분석

  1. 메서드의 반환값이 반드시 필요
    Java에서 메서드는 선언된 반환 타입에 맞는 값을 반드시 반환해야 한다.
    따라서, 위 코드에서는 int를 반환하도록 메서드를 선언했기 때문에, 반드시 int값을 반환해야 한다.

  2. for문 종료 후 반환값 없음
    for문에서 조건을 만족하는 x를 찾으면 해당 값을 반환한다.
    하지만, 만약 x를 찾지 못하면 메서드는 값을 반환하지 않는다. Java 컴파일러는 이 상황에서 "반환값이 없다"는 오류를 발생시킨다.

  3. 문제 조건에서 x는 항상 존재한다고 보장
    이 문제에서는 조건을 만족하는 x가 반드시 존재한다고 보장된다.
    하지만 컴파일러는 "반환값이 없다"는 오류를 던지기 때문에 return문을 추가하는 것이 필수이다. 

 

해결 방법

x가 없다면 -1을 반환하는 방식

실제로 x를 찾지 못할 일은 없지만, 코드의 안전성을 높이기 위해 return -1;을 넣는 것이 좋다.

class Solution {
    public int solution(int n) {
        for (int x = 2; x < n; x++) {
            if (n % x == 1) {
                return x;
            }
        }
        return -1;
    }
}

 

결론

missing return statement 오류는 Java에서 메서드가 값을 반환해야 할 때 발생하는 오류이다.
이 문제를 해결하려면, 반화값을 항상 명시적으로 반환해야 한다.
Java에서 메서드를 작성할 때 반드시 모든 코드 경로에서 반환값을 반환하도록 해야 한다.

'study > Java' 카테고리의 다른 글

LinkedList  (0) 2025.04.04
ArrayList  (0) 2025.04.03
Generic2  (0) 2025.04.02
Generic  (0) 2025.04.01
for문  (0) 2025.02.20