이전 글에서 이차원 배열에 대해 알아보았습니다. 이차원 배열 이상을 다차원 배열이라고 부르는데 이차원 배열과 비슷한 구조를 가집니다. 이번에는 배열을 요소로 가지는 가변 배열에 대해 알아보겠습니다.
1. 가변 배열
이차원 배열에서 이해를 쉽게하기 위해 엑셀의 워크시트를 생각하시라고 말씀드렸습니다. 이차원 배열은 행과 열의 두 가지 요소를 갖고 있는데 이차원 배열을 선언하여 생성하기 위해서는 이 두 가지 요소의 값을 정해줘야 했습니다. 그런데, 가변 배열은 행의 값만 정해주면 나머지 열의 값은 입력되는 데이터에 따라 정해집니다.
가변 배열을 사용하는 방법은 다음과 같습니다.
① 데이터형[ ] [ ] 배열명 = new 데이터형[숫자] [ ];
② 데이터형[ ] [ ] 배열명 = new 데이터형[ ] [ ];
이차원 배열 사용 방법과 비슷합니다. 다른 점은 데이터형 뒤의 괄호를 두 개 사용한다는 점입니다.
②번 사용 방법을 보시면 앞에서 가변 배열의 요소에서 행의 값을 정해주어야 한다고 말씀드렸는데 이 방법을 자세히 보시면 행의 값도 생략하여 사용하고 있다는 것을 아실 수 있습니다. 이렇게 사용하실 때는 바로 초기화를 시켜주셔야 에러가 발생하지 않습니다.
2. 예제를 통해 가변 배열 확인
Visual Studio를 실행하시고 새 프로젝트에서 C# 콘솔애플리케이션을 생성하시고 Main 함수에 다음과 같이 코딩을 합니다.
int[][] arr = new int[2][];
arr[0] = new int[3] { 1, 2, 3 };
arr[1] = new int[2] { 4, 5 };
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr[i].Length; j++)
Console.WriteLine(arr[i][j]);
}
①번 사용 방법으로 가변 배열을 선언하고 생성하여 사용했습니다.
이 코드를 실행하면 화면에 한 줄에 하나씩 1 ~ 5가 출력됩니다.
이번에는 아래와 같이 Main 함수에 코딩을 하고 실행을 합니다.
int[][] arr1 = new int[][]
{
new int[] {1, 2, 3},
new int[] {4, 5},
new int[] {6, 7, 8}
};
for (int i = 0; i < arr1.Length; i++)
{
for (int j = 0; j < arr1[i].Length; j++)
Console.Write(arr1[i][j]);
}
②번 사용 방법으로 가변 배열을 선언하고 생성하면서 바로 초기화를 시켜 주었습니다.
코드를 실행하면 화면에 '12345678'이 출력되는 것을 보실 수 있습니다.
사용 방법에는 적혀있지 않지만 new를 사용하지 않고 생성하고 초기화하는 방법도 있습니다.
아래 예제를 확인해 보세요.
int[][] arr2 = {
new int[] {1, 2, 3},
new int[] {4, 5},
new int[] {6, 7, 8}
};
for (int i = 0; i < arr2.Length; i++)
{
for (int j = 0; j < arr2[i].Length; j++)
Console.Write(arr2[i][j]);
}
실행하시면 화면에 '12345678'이 출력되는 것을 보실 수 있습니다. 가변 배열을 선언하고 바로 각 요소를 생성하면서 초기화를 시켰습니다.
가변 배열을 초기화하는 방법에는 배열 요소를 각각 초기화하는 방법도 있습니다.
아래 예제를 봐주세요.
int[][] arr3 = new int[3][];
arr3[0] = new int[3] { 1, 2, 3};
arr3[1] = new int[2] { 4, 5};
arr3[2] = new int[3] { 6, 7, 8};
for (int i = 0; i < arr3.Length; i++)
{
for (int j = 0; j < arr3[i].Length; j++)
Console.Write(arr3[i][j]);
}
가변 배열을 선언하고 생성하면서 행의 값으로 3을 주었습니다. 그리고, 각 행의 열을 생성하면서 바로 초기화를 시켰습니다.
여러 가지 가변 배열을 사용 및 초기화하는 방법에 대해 알아봤습니다. 이중 편하신 방법으로 가변 배열을 선언해서 사용하시면 됩니다.
'Programming > C#' 카테고리의 다른 글
C# 컬렉션 알아보기 - Queue & 메서드 (0) | 2021.10.15 |
---|---|
C# 컬렉션 알아보기 - ArrayList & 메서드 (0) | 2021.10.14 |
C# 이차원 배열 (0) | 2021.10.08 |
C# 일차원 배열 생성 및 선언하고 초기화 (0) | 2021.10.06 |
C# 반복문에 대해 알아보기 - while 문, do ~ while 문 (0) | 2021.10.03 |