[JAVA] java: missing return statement 원인과 해결방안

iiingkeep·2025년 3월 24일

JAVA

목록 보기
2/4

📌에러 java: missing return statement


에러 발생

아래의 코드를 작성하고 실행한다면
java: missing return statement
에러를 만날 수 있다.

package method;

public class MethodReturn1 {

    public static void main(String[] args) {
        boolean result = odd(2);
        System.out.println(result);
    }

    public static boolean odd(int i) {
        if (i % 2 == 1) {
            return true;
        }
    }
}

원인

Java에서 missing return statement 오류는 메서드의 반환 값이 제대로 반환되지 않았을 때 발생한다. 이 오류는 특히 반환 값이 있어야 하는 메서드에서 모든 경로가 값을 반환하지 않을 때 발생한다.

odd 메서드는 int i를 입력받아 짝수인지 홀수인지를 판별한다. 조건문을 사용하여 i % 2 == 1일 때 true를 반환하고 있지만, else나 if 조건이 맞지 않는 경우에는 아무것도 반환하지 않고 메서드가 종료된다. Java에서는 메서드가 값을 반환하도록 정의되었으면, 반드시 반환값을 반환해야 하므로, 이러한 상황에서 컴파일러는 오류를 발생시킨다.


해결 방안

이 문제를 해결하려면, odd 메서드에서 모든 경우에 대해 반환값을 명시적으로 지정해야 한다. 즉, if 조건이 아닌 경우에는 false를 반환하도록 해야 합니다.

package method;

public class MethodReturn1 {

    public static void main(String[] args) {
        boolean result = odd(2);
        System.out.println(result);
    }

    public static boolean odd(int i) {
        if (i % 2 == 1) {
            return true;
        } else {
            return false;
        }
    }
}

odd 메서드를 i % 2 == 1일 때 true를 반환하고, 그 외의 경우(짝수일 때)는 false를 반환하도록 수정했다. 이 코드에서는 모든 경우에 대해 반환값을 명시적으로 지정했기 때문에 missing return statement 오류가 더이상 발생하지 않는다.

위의 코드를 실행한 결과, 2는 짝수이기 때문에 다음의 결과값이 출력된다.

false




결론

Java에서 missing return statement 오류는 메서드가 반환값을 반드시 반환해야 하는데, 모든 경로에서 이를 보장하지 못할 때 발생한다. 이 문제를 해결하려면, 메서드 내에서 조건문이 끝난 후에도 반드시 반환값을 명시해야 한다. 이를 통해 boolean, int, String 등 반환 타입에 맞는 값을 반드시 반환하도록 한다.

profile
혁신적인 백엔드 개발자가 되고자, 기록✏️

0개의 댓글