void 타입은 반환값이 없다고 했는데
이게 이해가 안갑니다
출력값 또는 return이 있으면 반환값이 있는거 아닌가요?
sehongpark님의 답변
# void 타입 메소드는 값을 반환하지 않습니다.
void 타입 메소드에 return 키워드가 사용되었다면, 이는 값을 반환 하는 것이 아니라 메소드를 종료 하는 것입니다.
## void 메소드에서 return을 사용한 경우
특별한 경우, void 메소드 내부에서 return 을 사용하여 메소드를 종료 시킬 수 있습니다.
```
public void printNickname(String nick) {
// 별명이 바보라면?
if ("바보".equals(nick)) {
return; // 메소드를 종료
}
System.out.println("나의 별명은 "+nick+" 입니다.");
}
```
## 출력과 반환은 다른 개념입니다.
출력: 컴퓨터 화면에 보여주는 것.
```
System.out.println("5"); // 화면에 "5"를 출력
```
반환: 컴퓨터 메모리(또는 변수)에 값을 전달하는 것.
```
int result = add(3, 4); // 3과 4를 입력값으로 add 메소드를 호출, 그 결과값을 result 변수로 대입(전달)
```
결론적으로 void 타입의 메소드는 값을 전달 할 수 없고, 단지 출력만 가능합니다.
## 생각거리
아래의 코드는 동작(컴파일) 될까요?
```
int r = System.out.println(5);
```