java/객체지향

5-1. (보충)메서드 return문

VanillaSky7 2023. 1. 13. 20:13

return문


지난 글에서 메서드 내의 return문은 결과값을 반환해준다고 하였습니다.

 

반환 타입이 void의 경우에는 return문을 생략해주어도 컴파일러가 자동으로 생성해 주지만, 반환 타입이 존재하는 경우 즉 void가 아닌 

 

경우에는 반환(출력)할 값이 필요하므로 반드시 return문을 작성해주어야 합니다.

 

또한 return문은 실행 중인 메서드를 종료하고 호출한 시점으로 되돌릴 수 있는 기능을 하기도 합니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Numbering {
    
    void printNumber(int a) {
        
        if (a <= 0 || a >= 7) {
            return;
        }
        
        for (int i = 1; i < a; i++) {
            System.out.printf("%d", i);
            System.out.println();
        }
    }
    
}
 
public class returnExam {
 
    public static void main(String[] args) {
 
        Numbering num = new Numbering();
        
        num.printNumber(6);
    }
 
}
cs

우리는 1부터 5까지의 범위만을 출력시킬 수 있는 메서드를 만들고 싶다고 해보겠습니다. printNumber 메서드 내의 5행부터 7행 코드를

 

살펴보시면, 조건문 안에 매개변수 a의 값이 0 보다 작거나 같으면 혹은 7보다 크거나 같다면 return문을 통해 메서드를 종료하고 호출한 

 

시점으로 되돌릴 수 있습니다.

 

여기서 한가지 더 주의할 점이 있습니다. 조건문 내에서 return문을 사용할 경우, 참일 경우와 거짓일 경우 모두 return문을 작성해주어야

 

한다는 것입니다.

 

int Example(int a, int b) {    if (a > b)      return a;}

 

위와 같이 코드를 작성하면 a가 b보다 클 경우 즉 참일 경우에만 return문이 실행되고 거짓일 경우에는 반환할 수 있는 return문이 존재하

 

지 않으므로 에러가 발생합니다. 따라서 다음과 같이 거짓일 경우에도 반환할 수 있도록 return문을 반드시 작성해주셔야 합니다!

 

int Example(int a, int b) {    if (a > b)       return a;    else      return b;}