반복문 조건 배치의 중요성(?)

구창회·2023년 6월 15일
0

에러 사전

목록 보기
7/10

문제를 푸는데 내가 예상하지 못했던 IndexOutOfBoundsException 이 뜨길래, 너무 답답해서 인텔리제이로 디버깅을 시도하였다.

그런데..

원래 짰던 코드가 아래와 같았다.

나름 times 배열에 접근하는 cur 인덱스가 배열의 크기를 넘지 않도록 종료 조건을 주었다 생각했지만,
디버깅을 해보니 cur = times.length 인 상태의 루프가 끝나고나서
종료조건을 체크하기 위해서 cur 이 배열이 크기를 1 넘은 상태에서
time[cur] == 0 이라는 첫번째 조건에 접근하드라..

while (times[cur] == 0 && cur < times.length) {
      cur++;
      bag++;
}

_그래서 아래와 같이 종료 조건의 순서를 다르게 배치해서 가장 먼저 걸리는 조건을 배열의 인덱스 사이즈를 넘지 않는 조건으로 수정하지 오류가 해결되었다.

이제야.. 알아서 다행이다 ㅠㅠ_

while (cur < times.length && times[cur] == 0) {
      cur++;
      bag++;
}
profile
백엔드 엔지니어 프로 지망생

0개의 댓글