[Java] void는 왜 써야할까?

림민지·2025년 2월 24일

Today I Learn

목록 보기
9/62
post-thumbnail

Java에서 method 를 활용하는 파트를 공부하다가,
어떤 함수는 void 를 쓰고, 어떤 함수는 안쓰는 것을 확인할 수 있었다.
근데 return으로 반환하는 것과 아닌 것은 무슨 차이가 있을까? 왜 어떤 함수는 굳이 return을 쓰고 어떤 함수는 void로 자동 생성되게 할까?

❓ void란?

void는 "비어 있다", 즉 "반환할 값이 없음"을 의미한다.

Java에서 메서드를 정의할 때 void를 사용하면, 그 메서드는 어떠한 값도 반환하지 않는다!

🤔 void는 언제 쓰는게 좋을까?

그럼 언제 void를 써야할까?

1️⃣ 단순히 작업만 수행하고, 값을 반환할 필요가 없을 때

  • 출력만 해도 충분한 함수일 때 (더하기, 빼기, 결과값을 보여주기만 하면 될 때 등)

2️⃣ 메서드를 호출한 곳에서 결과값을 필요로 하지 않을 때

: 메서드를 호출한 후, 그 결과를 저장하거나, 다른 연산에 활용하거나, 조건문에서 사용하려면 반드시 반환값이 있는 메서드를 사용해야 한다.

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 없이 활용하기

위에서 말했듯이, 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" 출력
    }
}
  • sum(3, 5)는 8을 반환하고, 이를 result 변수에 저장했다.
  • reasult변수를 사용해서 다른 연산에도 활용할 수 있다!!

💦 함수 안에서도 타입을 명시할 수 있어용

오늘 실습을 하다가 예시 코드를 따라했는데,
이 코드는 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값으로 들어갈 수 있었던 것!


🔮 정리

  1. void는? - 반환값이 필요없을때! 나중에 활용할 일 없을 때 쓰자!
  2. 근데 나중에 활용할 일이 필요하다? - 그러면 반환할 타입을 명시한 후 return을 써주자!
profile
@lim_128

0개의 댓글