남궁성님의 자바의 정석 강의를 기반으로 작성했습니다.
- Return 문 : 실행중인 메서드를 종료하고 호출한 곳으로 되돌아갑니다.
public class GugudanReturn {
public static void main(String[] args) {
Gugudan gugudan = new Gugudan();
gugudan.printGugudan(3);
}
}
class Gugudan {
void printGugudan(int dan){
if (!(2 <= dan && dan <=9)) {
return; // dan의 값이 2~9가 아닌경우, 호출한 곳으로 되돌아간다.
}
for(int i=1; i <= 9; i++){
System.out.printf("%d * %d = %d%n", dan, i, dan * i);
}
return; // 반환타입이 void이므로 생략가능하며, 컴파일러가 자동 추가
}
}
- 반환타입이 void가 아니라면 반드시 return문이 필요합니다.
- 메서드에 조건문을 사용할 시 if 와 else 구문에 각각 return문을 작성해야합니다.
// 두개의 수 중에서 큰 값 출력
int max(int a, int b) {
if (a > b){
return a;
} else {
return b;
}
}
- 반환형과 return 값의 타입은 반드시 일치해야 합니다. (예. int 형을 반환형으로 설정했으면, return 문 옆의 return 값 또한 int로 설정)
- 호출 스택 (Call Stack)
* 스택이란 ? 밑이 막힌 상자로 차곡차곡 쌓이는 모양
* 호출 스택은 메서드 수행에 필요한 메모리가 제공되는 공간으로 메서드가 호출되면 호출 스택에 메모리가 할당되고, 종료시 해제됩니다.
* main 메서드가 first 메서드를 호출하면 first 메서드는 실행되고, main 메서드는 대기상태로 전환됩니다. 이후 마찬가지로 first 메서드는 second 메서드를 호출하게 되고, 순차적으로 third 메서드를 호출하게 됩니다. ( 아래있는 메서드가 위에 있는 메서드를 호출한 것 )
* 단, 위의 메서드 하나만 실행중이며 나머지는 대기 상태 입니다. (Single Thread) 추후에 Multi-Thread도 포스팅하겠습니다.
'Programming > Java' 카테고리의 다른 글
[JAVA] 생성자(constructor), 자바 생성자 (0) | 2021.10.11 |
---|---|
[JAVA] 오버로딩(Overloading) (0) | 2021.10.11 |
[JAVA] 자바의 메서드(Method) (0) | 2021.10.08 |
[JAVA] 클래스 변수와 인스턴스 변수 (0) | 2021.10.08 |
[JAVA] 자바의 클래스 (0) | 2021.10.08 |