배열은 같은 타입의 데이터들을 일괄적으로 관리할 때 사용하는 데이터 구조입니다. 이 배열은 차원의 수에 따라 표처럼 데이터들을 관리할 수 있습니다.
1. 장점
대량의 데이터 접근이 용이함 : 변수는 데이터를 하나만 저장하지만 배열은 하나의 이름으로 수많은 데이터를 관리하고 인덱스(주소)를 통해서 접근합니다. 예를들어 배열 Day[0]으로 Sunday를 호출했다면 Day[5]로 Friday를 호출할 수도 있습니다. 둘다 Day라는 직관적인 이름을 공유합니다.
반복문과 사용하기 용이함 : 배열의 인덱스를 나타내는 [0]부분은 자연수이기에 반복문의 변수(i)를 넣어 각 요소에 있는 데이터를 호출, 변경하기 용이합니다.
2. 단점
고정된 크기 : 배열을 선언할 때 배열의 크기를 선언하고 시작합니다. 한번 만들어지면 크기를 조정할 수 없습니다.
데이터 수정 및 관리의 번거로움 : 배열에서는 데이터 값을 직접적으로 지우는 기능이 없습니다. 데이터가 없음을 나타내려면 값 타입의 경우 0, 참조 타입이면 null을 입력하고 이후에 다시 값을 변경하고자 할 때도 인덱스를 직접 입력하여 수동으로 데이터를 입력해야 합니다.
3. 예문
배열을 배열의 선언, 배열의 크기조정, 배열에 데이터 입력 3단계로 구성되며 각 부분을 따로 입력하거나 합쳐서 사용할 수 있기에 3가지 방법이 있습니다.
3.1 각 부분을 따로 선언하는 경우
public int[] numbers;
void Start()
{
numbers = new int[5];
for(int i = 0; i < numbers.Length; i++)
{
numbers[i] = i * 2;
}
}
해당 예문은 각 부분을 따로 선언합니다.
먼저 int타입의 배열 numbers;를 선언합니다.
Start()에서 1회 호출합니다.
numbers의 크기는 5입니다.(주소값은 1~5가 아닌 0~4)
반복문 for문을 통해 i=0이고 i가 배열의 크기보다(5) 작을때 i에 1을 더하면서 반복합니다.
numbers[0] = 0*2
numbers[1] = 1*2
numbers[2] = 2*2… 를 반복하면서 5보다 작은 4까지 반복합니다.
그래서 numbers[0~4]는 각각 0,2,4,6,8의 값이 들어갑니다.
3.2 배열과 배열의 크기를 같이 선언하는 경우
public int[] numbers = new int[5];
void Start()
{
for(int i = 0; i < numbers.Length; i++)
{
numbers[i] = i * 3;
}
}
먼저 int타입의 배열 numbers를 5의 크기로 선언합니다.
Start()에서 1회 호출합니다
반복문 for문을 통해 i=0이고 i가 배열의 크기보다(5) 작을때 i에 1을 더하면서 반복합니다.
numbers[0] = 0*3
numbers[1] = 1*3
numbers[2] = 2*3… 을 반복하면서 5보다 작은 4까지 반복합니다.
그래서 numbers[0~4]는 각각 0,3,6,9,12의 값이 들어갑니다.
3.3 각 부분을 한번에 선언하는 경우
public int[] numbers = {0, 1, 2, 3, 4};
이미 데이터를 넣고 시작하기 때문에 Start()에서 따로 데이터 입력을 하지 않습니다.
int타입의 배열 numbers에 값을 0,1,2,3,4를 넣고 총 5개이기에 크기는 5입니다.
배열은 게임개발에서 속칭 테이블이라고 하는 데이터 관리에 용이합니다. 배열을 통해 개발자는 데이터를 효율적으로 관리할 수 있고 시스템이나 기능구현을 할 때 필수적으로 알아야 할 기능입니다. 이를 통해 드랍테이블, 몬스터테이블 등의 데이터 관리에 용이합니다.