2차원 이상의 배열을 다차원 배열이라고 함
2차원 배열
ex) int[][] array2;3차원 배열
ex) int[][][] array3;2차원 배열 초기화
ex) int[][] arr = new int[2][3];
int arr2[][] = new int[][] {{1,2,3},{4,5,6}};
int[] arr3[] = {{1,2,3},{4,5,6},{7,8,9}};
>
int[][] arr4 = new int[3][]; // 가변 배열 1차원만 초기화하고 2차원은 아직 초기화되지 않음
arr4[0] = new int[3];
arr4[1] = new int[4];
arr4[2] = new int[10];
>
int [][] arr = new int [2][3];
System.out.println(arr[0][1]); //[][]둘다 지정해줘야 출력할 수 있음
//arr[0] = 10; //1차원에는 값을 저장할 수 없음
arr[0] = new int[5]; //배열을 저장해야함
>
arr[0][0] = 10; //값을 저장하려면 2차원 인덱스까지 접근해야함
arr[0][1] = 20;
arr[1][0] = 100;
System.out.println(arr.length); //1차원 배열의 길이 : 2
System.out.println(arr[0].length); //2차원 배열의 길이 : 5
System.out.println(arr[1].length); //2차원 배열의 길이 : 3
//2차원 배열 => for문 2개
for(int i =0; i < arr.length; i++) {
for(int j=0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
}
3명의 학생이 과목별로 5개의 점수가 있다. 랜덤으로 점수를 넣어 합계와 평균을 출력하세요.
int[][] scores = new int[3][5]; //점수 int[] sum = new int[scores.length]; //합계 double[] avg = new double[scores.length]; //평균 for(int i=0; i < scores.length; i++) { for(int j=0; j < scores[i].length; j++) { scores[i][j] = (int)(Math.random() * 101); //0점부터 100점까지 sum[i] += scores[i][j]; } avg[i] = (double)sum[i]/scores[i].length; System.out.println("합계 : " + sum[i]+ ", 평균 : " + avg[i]); } System.out.println(Arrays.toString(sum)); System.out.println(Arrays.toString(avg));