배열은 무엇일까요?
예를 들어 계란이 자료형이라고 예를 들어볼까요.?
계란판은 계란이 30개 들어 있지요?
이것이 배열입니다.
위의 사진에서 보시면 계란이 5개가 한 묶음으로 되어 있고 6줄로 되어 있습니다.
마치 행렬처럼 말이죠.
배열을 선언해 보자
int형 배열을 만들어 볼까요?
위의 계란판을 참고로 해서 해보죠.
int[] eggArr = { 1, 2, 3, 4, 5}; // 위와 아래는 똑같은 말입니다. int[] eggArr = new int[] {1, 2, 3, 4, 5};
계란 5개 한줄을 표현해 보았습니다.
계란 5개 묶음 6줄을 표현하려면 어떻게 해야 할까요?
int[,] eggArr = new int[6,5]{{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25}, {26,27,28,29,30} };
위의 계란 사진처럼 갯수가 정해져 있는 경우에는 배열을 지정할 때
int[5,6] 이런식으로 쉼표(,)를 이용해서 나누어 줍니다.
배열의 접근과 사용
int[] eggArr = new int[]{1,2,3,4,5};
eggArr 에서 첫번째 요소인 1을 사용하려면 어떻게 해야 될까요?
int egg = eggArr[0] // 이라고 하면 됩니다. eggArr[0] = 5; Console.WriteLine("eggArr[0] = {0}", eggArr[0]);
결과는 5라고 나오게 됩니다.
잠깐 이상한게 나와서 당황스러우셨죠?
Console 이라는 클래스의 WriteLine이라는 메소드(함수)를 사용해 보았습니다. 나중에 더 자세히 알아볼게요.
(콘솔창에서 원하는 내용을 콘솔창에 띄워주는 역할을 합니다.)
eggArr[0] = 5; 라고 하였기 때문에
eggArr 은 이렇게 변하게 됩니다.
eggArr = {5, 2, 3, 4, 5}; 이것과 같은것이 됩니다.
배열은 int형만 되는것이 아니라, 모든 자료형이 다 배열로 표현가능합니다.
문자열을 담을 수 있는 string도 가능합니다.
string dinner = "김치찌개"; string[] myDinnerArr = {"김치찌개", "된장찌개", "피자", "돼지갈비"};
이렇게 자기가 먹고 싶은 저녁메뉴들을 모아 배열로 만들 수 있습니다.
가변형 배열
배열의 총 내용이 정해지지 않았을 경우에는 "동적배열"의 형식으로 지정이 가능합니다.
string[][] myGameArr = new string[3][]; myGameArr[0][0] = "히오스"; myGameArr[0][1] = "다크소울";
이렇게 그때 그때 값을 넣는 방식도 가능합니다.
이럴때는 주의 해야 될 점이
string[,] 의 형식이 아니라,
string[][] 의 형식으로 지정해 주어야 한다는 점입니다.
이것이 c,c++ 과 c#의 차이점입니다.