JAVA DAY11 - 다차원 배열

어뮤즈온·2020년 12월 1일
0

초급자바

목록 보기
16/31

다차원 배열

배열안에 배열이 저장되어 있는 형태이다.


2차원 배열의 선언 및 생성

1) 2차원 배열의 선언

  • 타입[ ][ ] 변수이름;  ex) int[ ][ ] score;
  • 타입[ ] 변수이름[ ];  ex) int[ ] score[ ];
  • 타입 변수이름[ ][ ]   ex) int score[ ][ ];

2) 2차원 배열의 생성

2차원 배열은 주로 테이블 형태의 데이터를 담는데 사용된다.

int[][] score = new int[3][4];
//3행 4열의 2차원 배열 생성
//3칸짜리 배열안에 각 칸마다 4칸짜리 배열이 생성된다.

int arr[][] = new int[][]{{1,2,3},{4,5,6}};
//값의 개수로 배열의 길이가 정해진다.

int[] arr2[] = {{1,2,3}
               ,{4,5,6}
               ,{7,8,9}};
               
int[][] arr3 = new int[3][];//가변 배열
arr3[0] = new int[3];
arr3[1] = new int[4];
arr3[2] = new int[10];

//2차원 인덱스까지 접근해야 값을 사용할 수 있다.
System.out.println(arrp[0][1]);//2 출력
System.out.println(arrp[1][2]);//6 출력
System.out.println(arrp[0]);//값이 아니라 배열이기 때문에 주소가 나온다.

//2차원배열은 1차원에는 값을 저장할 수 없다.
//-> 값이 아니라 배열을 저장해야 한다.
//arr[0] = 10; //오류
arr[0] = new int[5];//1차원에 배열 저장
arr[0][0] = 10; //2차원까지 접근해야 값을 저장할 수 있다.

예제

3명의 학생의 5과목의 점수를 랜덤으로 생성하고 합계와 평균을 구하시오.

int[][] scores = new int[3][5]; //int[학생수][과목수]
int[] sum = new int[scores.length]; //합계
//scores.length는 1차원 배열의 길이
double[] avg = new double[scores.length]; //평균

//3명의 학생에게 5과목 점수 랜덤 생성
for(int i = 0; i < scores.length; i++){
	for(int j = 0; j < socres[i].length; j++){
    	//scores[i].length는 2차원 배열의 길이
        socres[i][j] = (int)(Math.random() * 101);
    }
}

//각 학생의 합계, 평균 구하고 출력하기
for(int i = 0; i < scores.length; i++){
	for(int j = 0; j < scores[i].length; j++){
    	sum[i] += scores[i][j];
   	}
   	avg[i] = (double)sum[i] / scores[i].length;
   	System.out.println(i + 1 + "번 학생의 점수의 합계는 " + sum[i] + "점, 평균은 " + avg[i]+ "점 입니다.");
}
profile
Hello, world!

0개의 댓글