배열을 다뤄봤지만 배열은 2차원 이상으로 만들 수 있다. 하지만 웬만하면 2차원까지 주로 사용하고 특수한 경우에 3차원꺼지 쓴다. 그 이상으로 넘어가면 굉장히 복잡해진다.
int[] array = {1, 2, 3};
은 1차원 배열이다.
2차원 배열은 다음과 같이 작성 할 수 있다.
int[,] array =
{
{1, 2, 3},
{4, 5, 6}
};
한줄로 쓰면 코드를 분석하기 힘들어 행이 나누어서 작성하면 가독성이 좋아진다.
혹은
int[][] array = new int[3][];
// 1번 방법
array[0] = new int[6];
array[1] = new int[3];
array[2] = new int[5];
// 2번 방법
array[0] = new int[6] { 1, 2, 3, 4, 5, 6 };
array[1] = new int[3] { 7, 8, 9 };
array[2] = new int[5] { 10, 11, 12, 13, 14};
new int[3][]
의미는 3개의 행을 만든다.
array[0] = new int[6];
array[1] = new int[3];
array[2] = new int[5];
그리고 1번방법을 사용하면 0번째 행은 6개의 원소, 1번째 행은 3개, 2번째 행은 5개의 원소를 가진다. 선언을 하고 값을 후에 대입해준다.
2번방법을 사용하면
선언과 동시에 값을 순서대로 각 원소에 넣는다.
예시를 하나 더 들어보겠다.
5 x 5 의 2차원 string 배열을 마들고 중간에 대문자 "O"를 넣고자 한다.
1번 방법
string[][] stringArray1 = new string[5][];
stringArray1[0] = new string[5];
stringArray1[1] = new string[5];
stringArray1[2] = new string[5];
stringArray1[3] = new string[5];
stringArray1[4] = new string[5];
stringArray1[2][2] = "O";
2번 방법
string[,] table = new string[5, 5];
table[2, 2] = "O";
편한 방법을 골라서 써주면 된다.