자바(Java)〃리턴값이 없을때는 void를 사용

반응형

                                                  etc-image-0


메소드를 선언하고 사용하게 되면 리턴문이라는걸 사용하게 되는데요. 리턴값이 있을경우는 메소드 구문 마지막에 return 메소드명; 으로 종료시켜주게됩니다.


하지만 리턴값이 없는 메소드를 그냥 종료시켜주게 되면 구문자체에서 오류가 생기기 때문에 메소드 선언시 void라는 리턴값을 추가시켜줘야 합니다. 뭐 딱히 어려운 부분이 아니니 void를 사용했을때와 사용하지 않았을때 차이점을 비교하면 쉽게 정리가 될 것 같습니다.



메소드에 리턴값이 있는 경우

메소드 선언시 리턴타입인 byte, short, int를 구성하여 선언하면 반드시 return문으로 종료를 시켜줘야 됩니다. 


etc-image-1


간단하게 정상적으로 실행이 되는 구문과 오류가 나는 구문으로 나누어 봤습니다. 파란색으로 강조한 부분인 return문은 메소드를 종료한다는 뜻으로 중괄호{ } 이내에 있는 메소드는 종료가 됩니다.


오른쪽 예제에서 오류가 나는 이유는 return문 이후에 println 메소드가 나왔기 때문인데요. return문은 중괄호 { } 끝나기전 제일 마지막에 넣어주는게 일반적입니다. 여기서 말하는 중괄호는 리턴타입이 선언된 score의 전체 중괄호이며 만약에 그 안에 if구문을 넣어 또다른 중괄호를 넣었더라도 return이 선언된 시점부터 그 이후의 문장은 실행이 되지 않습니다. 



void를 사용했던 예제가 있는글 → 자바(Java)〃생성자의 조건 / 필드 초기화



 메소드에 리턴값이 없을때는 void로 선언한다.

이번 공부의 목적인 void는 선언된 메소드 마지막에 return이 없을 경우 사용되는데요. 


그렇다고 메소드에 void가 붙어서 return을 못 사용하느냐?? 아닙니다~~사용할 수 있답니다. 쉽게 이해하기 위해서는 메인구문을 떠올려 보면 되는데 public static void main(String[ ] args)에 void가 들어있어도 항상 실행할때 return문을 넣어주나 안넣어주나 실행이 아주 잘되잖아요. 


etc-image-2

void를 활용한 예제를 보시면 메소드 선언구문에 int나 byte같은 리턴타입이 아닐때 사용된다는걸 알 수가 있습니다. 대신 매개변수에는 score ( int a , int b ) 이렇게 리턴타입이 들어갈 수 있습니다. 


되게 혼동이 오실것 같은데 딱 한가지 메소드가 선언될때 void score 인지 int score 인지만 따져보시면 미리 알수가 있어요. 보통 메인메소드에서는 딱 이부분에서 끊어줘야겠다해서 return문을 넣어봤지 저도 이렇게 복잡할지 몰랐습니다. 오늘도 한가지를 또 배우고 넘어갑니다^^

반응형