열심히 끝까지

14강 배열 - 다차원 배열 본문

멘토씨리즈 JAVA

14강 배열 - 다차원 배열

노유림 2022. 4. 25. 20:10

14-1 ) 2차원 배열의 선언과 생성
       (1) 다차원 배열의 정의
                배열의 각 요소가 배열

       (2) 2차원 배열의 선언
                자료형[ ][ ] 배열명;

       (3) 2차원 배열의 생성
                배열명 = new 자료형[ 크기 ][ 크기 ]


       ex ) int[ ][ ] ar = new int[3][4] 
            => 4개의 변수를 묶고 있는 1차원 배열 3개를 
                 갖는 배열을 생성

           ar
           [ [   ][   ][   ][   ] ]  <- 4개의 변수를 묶은 배열 x 3
           [ [   ][   ][   ][   ] ]  
           [ [   ][   ][   ][   ] ]

       (4) 2차원 배열의 목적
                배열을 묶어서 관리하기 위해서

       Ex) 철수의 국, 영, 수 점수를 관리하기 위해 배열 생성!
             -> 이후, 반 학생 전체의 국, 영, 수 점수를 관리하려면?

       <실습>
       5개의 변수를 묶는 1차원 배열 2개를 묶는 2차원 배열 array2를 생성해라
       ==> 자료형[ ][ ] 배열명 = new int[1차원 배열 개수][각 배열의 변수 개수]
       ==> int array2[ ][ ] = new int[2][5];

2차원 배열의 생성


14-2 ) 2차원 배열의 인덱스
       " 2차원 배열은 행(가로)과 열(세로)로 구성되어 있다 "
       배열은 변수를 관리하기 위한 목적으로 만든 구조!
       따라서, 2차원 배열도 각 변수에 접근하는 방법이 있어야 하며
       그 방법이 바로 " 인덱스 " 이다! (인덱스 = 위치값)

       2차원 배열의 각 변수의 이름?
   
       ar
      [ [ar[0][0]] [ar[0][1]] [ar[0][2]] [ar[0][3] ]  ar[0]
      [ [ar[1][0]] [ar[1][1]] [ar[1][2]] [ar[1][3] ]  ar[1]
      [ [ar[2][0]] [ar[2][1]] [ar[2][2]] [ar[2][3] ]  ar[2]

      예상 - ar[1][2] = 30; / ar[0][3] = 40; / ar[1][2] = 50; 
      결과
      [ [ar[0][0]] [ar[0][1]] [ar[0][2]] [   40   ] ]  ar[0]
      [ [ar[1][0]] [ar[1][1]] [   50   ] [ar[1][3]] ]  ar[1]  
      [ [ar[2][0]] [ar[2][1]] [ar[2][2]] [ar[2][3]] ]  ar[2]
      
       이 때, ar[1][2]가 30이였다가 50으로 변경
 

14-3 ) 2차원 배열의 초기화와 출력
       (1) 2차원 배열의 초기화

                자료형[ ][ ] 배열명 = {
                          { 값1, 값2, 값3 .... },
                          { 값4, 값5, 값6 .... },
                          { 값7, 값8, 값9 .... },
                           ....
                 };

                 ex )
                 int[ ][ ] array3 = {
                         { 1, 2, 3, 4, 5 },
                         { 6, 7, 8, 9, 10 }
                 };

                [ [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ]  ]
                [ [ 6 ][ 7 ][ 8 ][ 9 ][ 10 ] ]
 
       < 실습 >
       < 2차원 배열의 모든 값 출력하기 >
        다음과 같이 4명의 학생의 점수 3개를 입력받아 scores라는 2차원 배열에 저장하시오

학생번호 국어 영어 수학
1번 90 100 50
2번 100 20 30
3번 40 50 60
4번 100 100 99

2차원 배열 예시 : 시험점수 저장하기
결과값