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

반응형

                                                 


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


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



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

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



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


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



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



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

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


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


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


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

반응형