
Java에서 method 를 활용하는 파트를 공부하다가,
어떤 함수는 void 를 쓰고, 어떤 함수는 안쓰는 것을 확인할 수 있었다.
근데 return으로 반환하는 것과 아닌 것은 무슨 차이가 있을까? 왜 어떤 함수는 굳이 return을 쓰고 어떤 함수는 void로 자동 생성되게 할까?
void는 "비어 있다", 즉 "반환할 값이 없음"을 의미한다.
Java에서 메서드를 정의할 때 void를 사용하면, 그 메서드는 어떠한 값도 반환하지 않는다!
그럼 언제 void를 써야할까?
: 메서드를 호출한 후, 그 결과를 저장하거나, 다른 연산에 활용하거나, 조건문에서 사용하려면 반드시 반환값이 있는 메서드를 사용해야 한다.
public class Main {
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int result = add(3, 7);
System.out.println("결과: " + result);
}
}
위의 코드처럼 add 함수에서 나온 결과값을 main의 변수에 저장하고 싶을때! 만약 return이 없다면 add 함수의 결과값을 변수에 저장할 수 없을것이다ㅠㅠ
즉, void를 사용하면 결과값을 받을 수 없다! (활용할 수 없다)
→ return문을 활용해야한다!
위에서 말했듯이, void를 사용하면 반환값을 활용할 수 없었다.
그럼 내가 method에서 나온 연산 값을 향후에도 활용하고 싶다면?
void 없이 반환 타입을 명시하고 return을 사용하면 된다!
이때,
대표적으로 int , String, boolean 을 예로 들 수 있다.
int를 활용한 예시를 더하기 add 함수를 활용해서 예를 살펴보쟈
public class Main {
public static int sum(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int result = sum(3, 5);
System.out.println("결과: " + result);
// "결과: 8" 출력
}
}
오늘 실습을 하다가 예시 코드를 따라했는데,
이 코드는 public class Calculator 로 시작했다.
내가 void 내용 이해한걸로 생각하면,, void가 없으면 타입을 명시해야하는데!!
하지만 왜인지 함수 안의 코드를 보면 이해할 수 있었다.
public class Calculator {
int sum(int value1, int value2){
int result = value1+value2;
// System.out.println("결과 : "+result);
return result;
}
}
비록 첫줄에서 타입을 명시하지는 않았지만, sum 연산을 int로 명시해주었으니, return에 정상적으로 Int값으로 들어갈 수 있었던 것!