Method와 return
Method는 언제 종료되는가 ?
Method와 return
Method(메소드)가 언제 종료되는가
Java에서 메소드가 종료되는 조건은 아래와 같다.
- 메소드의 모든 문장이 실행되었을 때
- return 문장에 도달했을 때
- return 타입이 void일 경우에는 메소드의 모든 문장이 수행되면 메소드가 종료된다.
- 예외가 발생했을 때
return 키워드 이후
- return 키워드 이후에는 어떠한 문장도 있으면 안된다.
- 만약 return 키워드 이후에 어떤 문장이 있다면 컴파일 에러가 발생한다.
- 예외 !!
1
2
3
4
5
6
7
8
public int getSomeNumber(){
int number = 0;
if(number == 0){
return number;
} else {
return --number;
}
}
- 예외적으로
if문 안에 return 키워드가 있을 경우if조건에 해당하는 조건 이외에 다른 경우가 있기 때문에 하나의 메소드 안에 두개 이상의 return이 있어야 한다. if문이else문 없이 하나만으로 되어있는 경우else문에 return이 없다면 컴파일 에러가 발생한다.- 결국 return 타입이 선언되어 있다면 무조건 return하는 상황을 만들어 줘야하는 것이다.
메소드 수행 종료 시키기
메소드 수행을 강제로 종료시키고 싶으면 아래와 같이 하면된다.
return 타입이 void여도 문제 없다.
1
2
3
4
5
6
public void foo(){
// some code...
return;
}
This post is licensed under CC BY 4.0 by the author.