모름

2차원 배열

 

2차원 배열을 연습하는 예제 코드입니다.

 

class Program {
    static void Main(string[] args) {

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

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

 

 

foreach(int arr in _2dArray) {
    Console.Write($"{arr} ");
}

 

만약 foreach 로 2차원 배열의 요소를 출력한다면 어떤 결과가 나올까요? 1차원 배열에서 2차원 배열 순으로 나열됩니다.

 

 

 


 

 

 

3차원 배열

 

class Program {
    static void Main(string[] args) {

        string[,,] array = new string[4, 3, 2];

        for (int i = 0; i < array.GetLength(0); i++) {
            for (int j = 0; j < array.GetLength(1); j++) {
                Console.Write("{");
                for (int k = 0; k < array.GetLength(2); k++) {
                    if (i % 2 == 0 || i == 0) {
                        array[i, j, 0] = "★";
                        array[i, j, 1] = "☆";
                    }
                    else {
                        array[i, j, 0] = "☆";
                        array[i, j, 1] = "★";
                    }
                    Console.Write($"{array[i, j, k]}");
                }
                Console.Write("}");
            }
            Console.WriteLine();
        }
    }
}

 

 

길이가 2인 배열을 3열 4행으로 나열했습니다. 

 

 

 


 

 

 

가변 배열

 

앞서 살펴본 2차원 배열, 3차원 배열 모두 배열을 요소로 갖는 배열이지만 이에 더 적합한 배열은 '가변 배열' 입니다. 참고할 점은 가변 배열이라는 이름을 보면 크기를 늘렸다 줄였다 할 수 있을것 처럼 보이지만 그렇진 않습니다. 가변 배열을 영어로 설명하면 JaggedArray 입니다. 이는 들쭉 날쭉한 배열이라는 의미를 가집니다. 이를 참고하여 개념을 이해하시길 바랍니다.

 

class Program {
    static void Main(string[] args) {
        int[][] jaggedArray = new int[3][];
        jaggedArray[0] = new int[] { 1, 2, 3, 4, 5 };
        jaggedArray[1] = new int[] { 6, 7, 8, 9 };
        jaggedArray[2] = new int[] { 10, 11 };
        int i = 0;
        foreach (int[] jagged in jaggedArray) {
            Console.Write($"Array[{i++}]Length : {jagged.Length}개 : ");
            foreach (int a in jagged) {
                Console.Write(a + " ");
            }
            Console.WriteLine();
        }
    }
}

 

 

가변 배열에 각각의 배열 요소가 들어가 있음을 확인할 수 있습니다.