강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

김명수님의 프로필 이미지
김명수

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

함수(메서드) 선언과 호출

리턴값 관련질문

해결된 질문

작성

·

18

0

좋은 강의 감사합니다!
함수(메서드) 선언과 호출 강의를 듣는중인데,
리턴값 관련해서 질문이 생겨서 글을 남기게되었습니다.
현재 리턴값이 있고, 없고의 차이를 크게 못느끼겠어서 질문을 남기게 되었습니다.
현재 이해한것은 리턴을 해주게 되면, 호출 한곳에 값을 돌려준다고 이해를 했는데, 리턴을 안하면 함수의 정의가 된곳에서 진행을 한다고 이해를 했는데, 이때 System.out.printIn(); 을 하면 출력이 되는것도 확인이 된는것을 봤습니다(17:45)

결과적으로 리턴값이 있고 없고의 차이를 크게 못느끼겠어서 이렇게 질문을 남기게되었습니다.

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요, 출력은 말 그대로 모니터에 값을 출력하는 것입니다.

출력은 그 외에 설명할 것은 없습니다. "모니터에 값을 보여준다."의 의미입니다.

 

리턴값은 말 그대로 "값을 반환"하는 것인데,

값을 반환하는 것 자체로는 모니터에 값을 출력하지 않습니다.

 

함수에 return이라는 키워드가 있는 경우, 본인(함수 그 자체)의 모든 괄호가 끝나면서 return에 해당하는 값을 본인이 호출된 곳으로 값을 전달합니다.

 

예를 들어 이렇습니다.

#include <stdio.h>

// 출력만 하는 함수
void printSum(int a, int b) {
    printf("결과(출력): %d\n", a + b); // 화면에 결과 출력
}

// 값을 반환하는 함수
int returnSum(int a, int b) {
    return a + b; // 결과값을 반환
}

int main() {
    printSum(2, 3);          // 콘솔에 '결과(출력): 5'가 찍힘

    int result = returnSum(2, 3);
    printf("결과(리턴): %d\n", result); // 반환값을 받아 직접 출력
    return 0;
}

코드의 출력값:

결과(출력): 5

결과(리턴): 5

 

위의 코드를 설명하자면 이렇습니다.

  • printSum(2, 3); 실행 시: 함수 안에서 바로 결과를 출력할 뿐, 함수 바깥에서 해당 값을 활용할 수 없음.

  • returnSum(2, 3); 실행 시: 해당 함수가 값을 반환(return) 하여 함수 외부에서 그 값을 변수에 저장하거나, 후처리, 출력 등에 활용 가능.

정리하자면 printf는 단순 출력, return은 값 활용 및 함수 결과 반환에 사용한다는 점이 가장 큰 차이입니다.

 

return을 하는 이유는 미리 만든 함수에다가 입력값을 던진 후에 연산이 끝난 리턴값을 돌려받아서 재활용하기 위함입니다.

 

이해가 어려운 경우 추가 질문 부탁드립니다!

 

 

0

안녕하세요, 인프런 AI 인턴입니다, 김명수님.

리턴값의 유무는 함수의 실행 흐름과 함수가 호출된 위치에서의 데이터 활용에 큰 차이를 줍니다. 리턴값이 있는 경우, 함수는 어떤 연산이나 결과를 외부로 전달할 수 있지만, 리턴값이 없는 경우 함수는 단순히 동작을 수행하고 끝나게 됩니다.

  1. 리턴값이 있는 경우: 함수를 호출한 곳에서 특정 데이터를 받을 수 있습니다. 예를 들어, int add(int a, int b)라는 함수가 있다면, 이 함수는 두 숫자의 합을 돌려줍니다. 그래서 int result = add(3, 4);처럼 함수를 호출하여 결과를 변수에 저장할 수 있습니다.

  2. 리턴값이 없는 경우: void 타입의 함수는 값을 돌려주지 않고, 단순히 내부에서 정의된 작업을 수행할 뿐입니다. 즉, 데이터를 외부로 전달하진 않습니다. 하지만 이 함수 안에서 System.out.println()과 같은 명령을 사용하여 값을 직접 출력하는 행위는 가능합니다.

관련하여 유사한 질문과 답변이 나왔던 것을 참고해보시면 좋을 것 같습니다.

  1. 리턴값 질문드립니다. - 이 링크는 리턴값의 의미와 함수에서의 실행 흐름에 대한 유사한 질문을 다루고 있습니다.

리턴값은 코드의 구조와 유지보수 측면에서 데이터의 흐름을 이해하고 관리하는 데 중요한 역할을 합니다. 함수의 목적에 따라 적절히 리턴값을 사용하면 더욱 가독성 높은 코드를 작성할 수 있게 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김명수님의 프로필 이미지
김명수

작성한 질문수

질문하기