[Java] 반환 타입

코드 속의 "진돌"·2024년 1월 8일
0
post-thumbnail

✅ 반환 타입이 있으면 반드시 값을 반환해야 한다.


반환 타입이 있는 메서드는 반드시 return을 사용해서 값을 반환해야 한다.

이 부분은 특히 조건문과 함께 사용할 때 주의해야 한다.

✏️ MethodReturn1

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;
    }
  }
}

이 코드에서 if 조건이 만족할 때는 true가 반환되지만, 조건을 만족하지 않으면 어떻게 될까?

조건을 만족하지 않은 경우에는 return문이 실행되지 않는다. 따라서 이 코드를 실행하면 return문이 누락했다는 컴파일 오류가 발생한다.

✓ 컴파일 오류

java: missing return statement

✏️ MethodReturn1 - 수정 코드

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;
    }
  }
}

이렇게 수정하면 if 조건을 만족하지 않아도 else를 통해 return문이 실행된다.

✅ return 문을 만나면 그 즉시 메서드를 빠져나간다.


return문을 만나면 그 즉시 해당 메서드를 빠져나간다.

다음 로직을 수행하는 메서드를 만들어보자.

  • 18살 미만의 경우 : 미성년자는 출입이 불가합니다.
  • 18살 이상의 경우 : 입장하세요.

✏️ MethodReturn2

package method;

public class MethodReturn2 {

  public static void main(String[] args) {
    checkAge(10);
    checkAge(20);
  }

  public static void checkAge(int age) {
    if (age < 18) {
      System.out.println(age + "살, 미성년자는 출입이 불가능합니다.");
      return;
    }

    System.out.println(age + "살. 입장하세요.");
  }
}
  • 18세 미만의 경우 “미성년자는 출입이 불가능합니다.”를 출력하고 바로 return문이 수행된다. 따라서 다음 로직을 수행하지 않고, 해당 메서드를 빠져나온다.
  • 18세 이상의 경우 “입장하세요.”를 출력하고, 메서드가 종료된다. 참고로 반환 타입이 없는 void형이기 때문에 마지막 줄의 return은 생략할 수 있다.

✏️ 반환 값 무시

반환 타입이 있는 메서드를 호출했는데 만약 반환 값이 필요없다면 사용하지 않아도 된다.

예시1 : int sum = add(1, 2);

  • 반환된 값을 받아서 sum에 저장했다.

예시2 : add(1, 2);

  • 반환된 값을 사용하지 않고 버린다. 여기서는 예시1과 같이 호출 결과를 변수에 담지 않았다. 단순히 메서드만 호출했다.
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글