메소드는 크게 리턴값이 존재하는 메소드와 그렇지 않은 메소드로 나눌 수 있다. 리턴값이 존재한다는 것은 메소드가 실행되고 난 후 반환할 값이 존재한다는 것이고 리턴값이 존재하지 않는 것은 메소드가 실행되고 반환할 값이 없다는 것을 의미한다. 이때 리턴 타입이 void가 아니지만 return문이 없다면 오류가 발생하게 된다. 

 

 메소드에서는 return문을 실행하면 그 즉시 메소드가 종료된다. 따라서 return문 이후에 코드를 작성하게 되면 'Unreachable Code'라는 문구와 함께 오류가 발생하는 것을 볼 수 있다. 말 그대로 도달할 수 없는 코드라는 뜻이다. 하지만 조건문과 같이 특수한 상황에는 return문 뒤에 있어도 코드가 실행될 수 있다. 꼭 return문 뒤에 작성할 수 없다는 뜻은 아니다. 

 

 이런 return문은 메소드 내에서 여러개가 쓰여도 된다. 

public int returnNumber(int a){
	if(a==1){
    	return 1;
    } else {
    	return 0;
    }
}

 위의 코드를 살펴보면 매개 변수로 들어온 a가 1일 경우 1을 반환하고 아니면 0을 반환하는 구조이다. 이처럼 2개가 와도 되고 그 이상으로 있어도 된다.

 

 메소드의 리턴 타입 중 void라는 녀석이 있다. 이 녀석은 값을 반환하지 않겠다는 의미인데 이 녀석을 반복문과 같이 사용할 때 주의해야 한다. 만약 리턴 타입을 void라고 작성한 후 안에 while문을 같이 썼다면 while문은 끝내는 조건이 없을 경우 잘못하면 무한루프 상태에 빠지게 된다. 따라서 이러한 경우에는 꼭 반복문을 끝낼 수 있는 break문을 사용하거나 return ;을 통해 아무런 값도 반환하지 않고 메소드를 종료해야 한다.

'프로그래밍 > JAVA' 카테고리의 다른 글

메소드 - Method  (0) 2021.04.30
생성자 오버로딩(Overloading)  (0) 2021.04.30
this  (0) 2021.04.30
생성자  (0) 2021.04.30
클래스의 구성 요소  (0) 2021.04.29

+ Recent posts