에러원인
- 배열의 인덱스 접근이 잘못되었기 때문에
- 배열의 인덱스 범위를 초과하여 접근하려고 할 때 발생합니다.
- index는 0부터 시작해서 ~ 배열의 크기-1까지
예시1
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int[] arr= new int[31];
for(int i=1;i<=28;i++){
st=new StringTokenizer(br.readLine());
int num = Integer.parseInt(st.nextToken());
arr[num] = 1; // arr[낸번호] = 1로함
}
for(int j =1;j<=arr.length;j++ ){
if(arr[j]!=1){
System.out.println(j);
}
}
}
}
오류 원인
- 배열 인덱스 범위는 0부터 29 이지만,코드에서 arr[j] 접근을 1부터 30까지 시도하고 있어서 ArrayIndexOutOfBounds 발생된다.
예시 2
int[] num ={1,2,3};
int value = num[5]; //ArrayIndexOutOfBoundsException 발생