강의

멘토링

로드맵

Inflearn brand logo image

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

김도영님의 프로필 이미지
김도영

작성한 질문수

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

(기출) 2024년 2회 기출문제 - 이론 포함

24년 2회 기출 (영상 41:39)

해결된 질문

작성

·

54

0

해당 시간대 영상 화면의 설명 중 가운데 다단에 '여덟번째 호출 반환'에서 a가 반환되는 것은 이해했습니다. 그렇게 되면 자바 코드 하단의 String result 변수에는 a가 저장되고, 마지막에 result 변수값을 출력하면 a가 나와야 하는 것 아닌가요?? 어떻게 일곱번째 호출 반환으로 가게 된 건지 궁금합니다.

답변 2

0

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

아직 함수가 끝난게 아닙니다.

 

상위 함수는 중간에서 다른 함수를 호출했기 때문에 코드를 끝내지 않았습니다. 재귀함수니까요.

그래서 상위 함수를 모두 끝마쳐야 합니다.

a를 리턴하는 것은 호출한 함수를 끝마치는 것의 시작입니다. 그 이후로 쭉 다시 해서 가장 먼저 불린 함수를 리턴해야지 모두가 끝납니다.

 

최초 함수1 {

함수2를 부른다.

내용1

내용2

return;

}

 

이렇게 있으면 함수2가 끝나면 다시 함수 1의 내용1을 수행해야죠.

아직 수행을 안하고 계속 다음 함수에서 함수3,.. 함수4,... 이렇게 부르고 있는 것입니다.

상위 함수로 돌아와서 return을 해야합니다.

0

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

질문하신 내용을 기준으로 보았을 때, ‘여덟번째 호출 반환’에서 ‘a’가 반환된다고 하신 부분이 장문의 함수 호출 과정이나 재귀 호출과 관련이 있을 가능성이 높습니다. Java에서 재귀 호출 구조나 복잡한 메서드 호출 시 그 결과를 처리하는 로직에 따라 변수가 어느 시점에 어떤 값을 갖게 되는지가 달라질 수 있습니다.

설명

  1. 여덟번째 호출 반환에서 반환된 ‘a’: 이때 ‘a’는 특정 조건이나 루프, 재귀 구조를 통해 반환된다고 할 수 있습니다.

  2. result 변수에 저장된 값: 코드에서 설명하신 대로 ‘String result’ 변수에 마지막으로 할당되는 값이 ‘a’가 아니라는 것은 그 과정에서 ‘result’에 다른 값이 재할당되었을 가능성이 높습니다. 메서드나 재귀 호출에서 이전에 ‘result’가 갱신된 상태일 수 있습니다.

  3. 일곱번째 호출 반환으로 처리되는 흐름: 재귀 호출이나 여러 도함수에서 호출 순서가 뒤바뀐 경우, 혹은 루프나 조건에 의해 결과가 바뀌는 상황을 꼼꼼히 확인해보셔야 합니다. 해당 두 호출 사이의 로직이 변수에 값을 할당하는 과정을 포함할 수 있습니다.

관련 링크

자세한 설명은 다음 링크의 유사 질문들을 참고하시면 도움이 될 수 있습니다:
- 23년 1회 java - 함수 호출 및 변수 처리 관련 예시와 설명이 나와 있습니다.
- 자바 기출변형 문제 질문 - 함수 호출 시 결과 처리의 논리에 대한 설명이 있습니다.

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

김도영님의 프로필 이미지
김도영

작성한 질문수

질문하기