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