5-1. (보충)메서드 return문
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;}