C Visual Basic 기본문법 - 변수의 배열 선언,연산자

Cugain 2007.02.21 14:43 조회 수 : 604 추천:121

sitelink1  
sitelink2  
extra_vars5  
extra_vars6  

?정적배열과 동적배열
배열을 선언하는 방법은 변수를 선언하는 방법과 동일하면 한가지 배열로 사용할 변수이름옆에 ()가 붙는다는 것이 틀리다.
배열이라는 것은 여러개가 번호표를 들고 줄지어 서있다고 생각하면 된다.
배열선언
Dim 배열명(범위) As 데이터형
정적배열은 배열의 크기가 고정되어 있는 경우를 말하고 동적배열은 배열의 크기가 유동적인 배열을 의미한다.
(배열선언시 크기를 설정하지 않은 배열을 동적배열이라고 한다.)

정적배열

dim aaa(30) as string      '배열 크기만 지정 : 인덱스가 0부터 30까지 31개 생긴다.
dim aaa(3,4) as integer   '2차원배열 :  (0 ~3, 0 ~ 4) 의 2차원배열
dim aaa(1 to 5, 4 to 9, 3 to 5) as double  '범위가 지정된 3차원배열  
dim aaa(1 to 10) as sting     '범위가 지정된 배열 : 1 ~ 10 까지의 10개의 배열이 생긴다.

동적배열

Dim aaa( ) As integer

동정배열로 선언된 변수의 배열 크기를 재정의 할때(프로시저안에서 사용)

Redim 배열명( 범위 | 크기 )

동적배열을 선언 후 그냥 사용할 수 없기때문에 Redim 문으로 배열의 크기를 정한다.
예)
Option Explicit
dim aaa( ) as string

private sub command1_click()
redim aaa(list1.listcount - 1) as string
  'redim 문으로 aaa배열변수의 크기를 지정한다.
text1.text = ubound(aaa - 1) 'aaa배열변수의 갯수를 리턴한다.
end sub

배열사용예제
dim aaa(10) as string 라고 선언했다면 0 ~ 10 까지 총 11개의 배열이 생긴다.
배열로 선언한 aaa변수를 사용할때는 aaa(0)  =  "하하하" , aaa(1) = "히히히"  ,...  이런식으로 값을 넣는다. 
보통 For 문을 사용해서 배열값을 넣어버린다.

예) For i = Lbound(aaa) To Ubound(aaa)
aaa(i) = list1.list(i)
Next i
이 예제는 aaa 배열변수에 list박스의 아이템목록을 순서대로 집어넣는 방법을 보인것이다. Ubound(배열변수,차원) 이라고하면 배열의 가장큰값을 가져온다. 
dim aaa(1 to 10,1 to 5) 에서 Ubound(aaa,2) 라고하면 해당값은 5 이다.  

위에서 배열선언시 범위가 아닌 크기만을 지정했을 때 인덱스(순서)가 0 부터 시작되는 것을 알 수 있을 것이다. 이것이 마음에 들지않으면 Option Base (0 | 1) 명령을 코딩 초반부분에 사용하여 1부터 시작하도록 바꿀 수 있다.
Option Base 1
Dim aaa(10)                    '이때는 1부터 10까지의 10개의 배열이 생긴다.

추가 > array 함수사용
Dim Name1()
Name1() = Array("가", "나", "다", "라")    'Array함수를 사용하여 Name1 변수에 4개의 문자를 넣었다.
text1.text = Name1(0)    '텍스트박스에 "가" 문자가 들어간다.  인덱스가 0부터 시작하는 것을 알 수 있다.
text2.text = Name1(1)    '텍스트박스에 "나" 문자가 들어간다.  
여기서도 Option Base 1 를 사용하면 인덱스를 1부터 시작시킬 수 있다.

?연산자

산술연산자 관계 연산자 논리연산자
(제곱)  = Not
-  (음수) <> And
+, - (덧셈,뺄셈) < Or
*, / (곱셈, 나눗셈) > Xor
Mod (나눗셈의 나머지) <= Eqv
& 문자열 덧셈 >= Imp
(나눗셈의 몫)    

사용예)  result = 10 mod 3     'result 변수값은 10을 3으로 나눈 나머지값인 1 이 됨.
             result = 10 3       'result 변수값은 10을 3으로 나눈 몫인 3 이 됨.