제로의영역

10.4 2차원 배열 본문

C#

10.4 2차원 배열

아이큐제로 2019. 8. 6. 16:30

 * 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.

* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.

 

1. 정의: 2개의 차원(세로+가로)으로 원소를 배치하는 배열

 예1 ) 1차원(가로방향)의 길이가 3, 2차원(세로방향)의 길이가 2인 2차원 배열

 [0,0]   [0,1]  [0,2]

1 2 3
4 5 6

 [1,0]   [1,1]  [1,2]

 

2. 선언(생성) 방법

 (1) 1차원 배열과 선언 형식이 같음

  1차원 배열 선언: 데이터형식[ ] 배열이름 = new 데이터형식[ 용량 ];

 (2) 각 차원의 용량 또는 길이를 콤마( , )로 구분해서 [ ] 사이에 입력해줌.

  2차원 배열 선언: 데이터 형식[,] 배열이름 = new 데이터형식 [ 2차원길이, 1차원길이 ];

 

예2) 예1의 배열 선언

int[,] array = new int[2,3];
array[0,0]=1;
array[0,1]=2;
array[0,2]=3;
array[1,0]=4;
array[1,1]=5;
array[1,2]=6;

3. 선언과 동시에 초기화 방법

 (1) 1차원 배열의 세가지 초기화 방법과 같음

종류 1차원배열 2차원배열
배열의 형식과 길이를 명시 string[ ] arr1=new string[3]{ "안녕" ,"Hello", "Halo" };  int[,] arr1=new int[2, 3]{{1, 2, 3}, {4, 5, 6}};
배열의 길이 생략 string[ ] arr2=new string[ ]{ "안녕" ,"Hello", "Halo" };  int[,] arr2=new int[,]{{1, 2, 3}, {4, 5, 6}};
형식과 길이를 모두 생략 string[ ] arr3={ "안녕" ,"Hello", "Halo" };  int[,] arr3={{1, 2, 3}, {4, 5, 6}};

예제)

using System;

namespace _10._5
{
    class MainProgram
    {
        static void Main(string[] args)
        {
            int[,] arr = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };   
            						//가로3열 세로2행인 arr배열 생성및 초기화

            for(int i=0;i<arr.GetLength(0);i++) 
           //GetLength():배열에서 지정한 차원의 길이를 반환, 세로가 2와 같을 때까지 코드 반복
            {
                for(int j=0; j<arr.GetLength(1);j++)    //가로가 3가 같을 때까지 코드 반복
                {
                    Console.Write($"[{i},{j}]:{arr[i, j]} ");
                }
                Console.WriteLine();
            }
            Console.WriteLine();


            int[,] arr2 = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };

            for(int i=0;i<arr2.GetLength(0);i++)
            {
                for(int j=0;j<arr2.GetLength(1);j++)
                {
                    Console.Write($"[{i},{j}]:{arr2[i,j]} ");
                }
                Console.WriteLine();
            }
            Console.WriteLine();

            int[,] arr3 = { { 1, 2, 3 }, { 4, 5, 6 } };

            for(int i=0;i<arr2.GetLength(0); i++)
            {
                for(int j=0;j<arr2.GetLength(1);j++)
                {
                    Console.Write($"[{i},{j}]:{arr3[i, j]} ");
                }
                Console.WriteLine();
            }
            Console.WriteLine();
        }
    }
}

실행 결과:

[0,0]:1 [0,1]:2 [0,2]:3
[1,0]:4 [1,1]:5 [1,2]:6

 

[0,0]:1 [0,1]:2 [0,2]:3
[1,0]:4 [1,1]:5 [1,2]:6

 

[0,0]:1 [0,1]:2 [0,2]:3
[1,0]:4 [1,1]:5 [1,2]:6

'C#' 카테고리의 다른 글

10.6 가변 배열  (0) 2019.08.09
10.5 다차원배열  (0) 2019.08.09
10.3 알아두면 삶이 윤택해지는 System.Array  (0) 2019.08.05
10.2 배열을 초기화하는 세가지 방법(배열2)  (0) 2019.08.02
10.1 All for one, one for all (배열)  (0) 2019.07.31