간단한 자바 Array 질문입니다!

조회수 655회

밑의 코드가 실행되지 않는 이유는 뭔가요? 원래 i에 할당된 값이 없어서 새로 할당한 후에도 실행이 불가하다고 표시되네요.

public class Main {
public static void main(String[] args) {

    int[] x = new int[5];
    int i=0;
    while (i <x.length) {
        x[i++] = i;
    }
    System.out.println(x[i]);
    }
}

오류 내용:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at Main.main(Main.java:11)

1 답변

  • ArrayIndexOutOfBoundsException 는 잘못된 인덱스 값으로 배열에 접근했기때문에 발생하는 에러입니다.

    x[i]에서 i에 들어갈 수 있는 최대 값은 4입니다.
    처음에 길이를 5로 초기화했으니 0~4가 들어갈 수 있습니다.

    while문 제일 마지막에 i++ 가 실행되니 i값은 5가 되겠지요.

    즉 마지막에 System.out.println(x[i]); 에서 출력하고자하는 x[5]는 잘못된 인덱스 값 입니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)