• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

구현 - 과일 가져가기 문제

23.07.11 15:04 작성 조회수 208

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 명령어는 값을 반환하는 역할도 하지만 동시에 호출된 메서드를 종료하는 역할도 합니다.