VB.NET 2008/VB - 문법

문법 - 배열

본클라쓰 2011. 4. 4. 20:02

 

배열은 초등학교 각 학년의 학생 수와 같이 논리적으로 서로 관련된 값의 집합이다. 배열을 사용하면 이러한 관련 값들을 동일한 이름으로 참조하고 인덱스 또는 첨자라고 하는 번호를 사용하여 각 값을 구별할 수 있다. 개별 값은 배열의 요소라고 하며, 요소는 인덱스 0부터 최고 인덱스 값까지 연속되어 있다.

 

배열은 다른 변수와 동일한 방법으로 Dim 문을 사용하여 배열 변수를 선언할 수 있다. 변수 이름 뒤에 한 쌍 이상의 괄호를 붙여서 해당 변수에 스칼라(하나의 값을 포함하는 변수)가 아니라 배열이 포함됨을 나타낸다.

 

1차원 배열을 선언하려면 선언에서 변수 이름 뒤에 괄호 한 쌍을 추가한다.

 

Dim CargoWeights() As Double

 

다차원 배열 변수를 선언하려면 선언에서 변수 이름 뒤에 괄호 한 쌍을 추가한 다음 괄호 안에서 쉼표를 사용하여 차원을 구분한다.

 

Dim atmosphere(,,,) As Short

 

 

 

배열은 개체이므로 New 절을 사용하여 배열을 만들고 이를 배열 변수에 할당할 수 있다. 이 작업은 배열 선언의 일부로 수행하거나 후속 대입문에서 수행할 수 있다. 배열 선언문에서 배열을 만들려면 선언에서 변수 이름과 괄호 뒤에 New 절을 추가한다.

 

Dim ValidDates() As Date = New Date(){}

 

위 예문에서 배열의 길이는 0이다. 이 배열의 길이를 다시 초기화 할 때는 Redim 문을 사용한다.

 

Redim ValidDates(4)

 

이 때 배열 요소의 기존 값은 잃게 된다. 그러나 Redim문에서 Preserve 키워드를 포함시켜 선언하면 기존의 값을 보존할 수 있다.

 

Redim Preserve ValidDates(5)

 

 

 

배열을 만들면서 동시에 New 절의 일부로 배열을 초기화할 수 있다. 또한 후속 대입문에서 배열을 초기화할 수도 있다. 배열을 만들 때 New 절에서 배열을 초기화하려면 New 절에서 괄호 안의 인덱스 상한을 지정하고 중괄호({}) 안에 요소 값을 지정한다.

 

Dim testChars As Char() = New Char(2) {"%"c, "&"c, "@"c}

 

이 문을 실행한 후 testChars 변수의 배열 길이는 3이 되며, 인덱스는 0부터 2까지 요소에 초기화된 값이 포함된다. 상한과 해당 값을 모두 지정할 경우에는 인덱스 0부터 상한까지의 모든 요소에 대한 값을 포함해야 한다. New 절에서 요소 값을 지정할 경우에는 인덱스 상한을 지정할 필요가 없다.

 

Dim answers As Boolean() = New Boolean(){True, True, True, False}

 

이 문을 실행 한 후 answers 변수의 배열 길이는 4가 되며, 인덱스는 0부터 3까지의 요소에 초기화된 값이 포함된다.

 

 

 

후속 대입문에서 배열을 초기화하려면 배열 변수 선언에 인덱스 상한을 지정한다. 배열 요소 중 하나에 값을 할당하는 대입문을 하나 이상 사용한다.

 

Dim comments(30) As String

comments(0) = "This is the first comment."

comments(5) = "This is the sixth comment."

 

이 문을 실행한 후 comments 변수의 배열 길이는 31이 되며, 인덱스0과 5의 요소에 초기화된 값이 포함되고 다른 29개의 요소에는 기본값이 포함된다. 이 방식으로 배열을 초기화하면 일부 요소만 초기화하고 나머지 요소는 건너뛸 수 있다. 또한 선언문에 값을 할당하지 않고 별도로 할당할 때는 array = {6,7,8,9,10} 과 같이 값이 나열을 통해 할당할 수 없다. 나열해서 값을 할당하고 싶다면 콜론(:)을 사용해야 한다.

 

Dim array() As Integer

array(0) = 1 : array(1) = 2 : array(2) = 3

 

 

배열 개체의 중요 멤버는 다음과 같다.

 

˚ Rank - 배열의 차수(차원의 수)를 반환한다.

˚ GetLength - 지정된 차원의 길이를 반환

˚ GetUpperBound - 지정된 차원의 최고 인덱스 값을 반환

˚ Length - 배열의 전체 요소 개수를 반환

˚ Sort - 1차원 배열의 요소를 정렬

 

 

 

 

참조) http://msdn.microsoft.com/ko-kr/library/ms172582.aspx (VB MSDN)