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

팡세님의 프로필 이미지
팡세

작성한 질문수

자바 코딩테스트 - it 대기업 유제

6. "과일 가져가기" 코드 해설

구현 - 과일 가져가기 문제

작성

·

257

0


public int getMinIndex(int[] fruit) {
    int min = getMin(fruit);
    for(int i = 0; i < 3; i++) {
        if(fruit[i] == min) return i;
    }
    return 0;
}

아니라

public int getMinIndex(int[] fruit) {
    int min = getMin(fruit);
    int i;
    for(int i = 0; i < 3; i++) {
        if(fruit[i] == min) return i;
    }
    return i;
}

해야 되는거 아닌가요?

첫번째 코드처럼 하면 무조건 최솟값인 과일의 인덱스로 0(사과)가 반환되는거 아닌가요??

첫번째 코드가 맞는 이유는 처음 등장하는 return이 메소드를 종료시키므로 이후의 구문은 실행되지 않기 때문인가요?!

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 맞습니다. for문 안에 return문이 i를 리턴하면서 getMinIndex 메서드를 종료하기 때문입니다.

return 명령어는 값을 반환하는 역할도 하지만 동시에 호출된 메서드를 종료하는 역할도 합니다.

 

팡세님의 프로필 이미지
팡세

작성한 질문수

질문하기