응 아니야


오늘은 변수에 대해서 알아보겠습니다. 변수란 바뀌는 값, 상수는 바뀌지 않는 값이라고 알아두시면 되겠습니다. 변수와 상수는 프로그램이 구동되는 동안 임시로 자료를 저장하는 공간입니다.


※ 주의!
변수는 휘발성입니다. 선언한 당시부터 초기화하는 순간까지죠. 프로그램을 계속 실행하고 있는 상태라면 이어지겠지만, 프로그램을 껐다 키면 날아가버립니다. 때문에 학사관리, 전화번호부 등 지속적으로 필요한 정보를 담을때에는 mdb, binary, txt, ini, winsock, regedit 등을 이용하시기 바랍니다.


변수는 변수이름으로 구분됩니다. dim 변수이름 as 자료형 처럼 말입니다. 식별자는 아래와 같은 규칙을 지켜야 합니다. (안지키면 에러뜸.)

1. 공백이 없는 한 단어로 구성해야함.
변 수 이 름

2. 영문자, 한글, 숫자, _등을 사용함.
a한1_

3. 영문자 또는 한글로 시작해야함.
a 또는 한

4. 255개의 문자를 초과할 수 없음.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

5. 영문자의 대소문자는 구분하지 않음.
aAa

6. 예약어를 사용하지 않음.
name

여기서 예약어는 비주얼베이직에서 이미 사용하고 있는 변수이름을 말합니다. 이미 쓰고 있는데 또 쓸수는 없으니까요. 변수는 바뀌는 값이면서 프로그램이 작동할때 필요한 공간을 미리 확보하는겁니다. 필요한 만큼만 공간을 마련한 프로그램이 작동하는데 무리를 주지 않습니다.

1. Byte, 1바이트, 0 ~ 254
dim 변수이름 as byte
식별자 = 0 부터 255까지의 숫자를 담을 수 있음

2. Boolean, 2바이트, 참 또는 거짓
dim 변수이름 as boolean
식별자 = 0 또는 1

3. Integer, 2바이트, -32,768 ~ 32,767
dim 변수이름 as integer
식별자 = -32,768 부터 32,767 까지 숫자를 담을 수 있음

4. Long, 4바이트
dim 변수이름 as long
-2,147,483,648 부터 2,147,483,647 까지 숫자를 담을 수 있음

5. Single, 4바이트
dim 변수이름 as single
음수의 경우
-3.402823E 부터 -1.401298E-45 까지 숫자를 담을 수 있음
양수의 경우
1.401298E-45 부터 3.4028231E+38 까지 숫자를 담을 수 있음

6. Double, 8바이트
dim 변수이름 as double
음수의 경우
-1.79769313486232E308 부터 -4.94065645841247E-324 까지 숫자를 담을 수 있음
양수의 경우
4.94065645841247E-324 부터 1.79769313486232E308 까지 숫자를 담을 수 있음

7. Currency, 8바이트
dim 변수이름 as currency
-922,337,203,685,477.5808 부터 922,337,203,685,477.5807 까지 숫자를 담을 수 있음

8. String, ~바이트
dim 변수이름 as string
고정형 65500자
가변형 232자

9. Date, 8바이트
dim 변수이름 as date
100.1.1 부터 9999.12.31 까지 날짜를 담을 수 있음


10 상수

const 상수이름 as byte = 255


변수는 전역변수와 지역변수로 나뉩니다. 우리는 제 2장 코딩편에서 프로시저를 배웠습니다. Private Sub command1_click()에서 click() 부분을 담당하는것을요. 전역변수로 쓰면 해당 폼이나 모듈 등 어디서든 사용할 수 있습니다.


지역변수는 전역변수의 하위개념으로, Private Sub command1_click() 처럼 해당 폼이나 모듈에 설치한 각 하나의 요소에만 사용할 수 있습니다. 예를들자면 아래와 같습니다.



전역변수라는 이름으로 byte 자료형을 가지는 전역변수를 선언했습니다. 아래 커맨드 1번을 클릭했을 경우에 지역변수라는 이름으로 byte 자료형을 가지는 지역변수가 선언됩니다. 이후 전역변수에는 숫자 0이, 지역변수에는 숫자 255가 대입되죠. 그리고서 폼에 설치한 텍스트 박스에 전역변수와 지역변수를 불러오게 됩니다.


결과는 뭘까요?

"대입된 0/대입된 255 모두 불러온다"입니다.


이제 커맨드 2번 버튼에는 변수 선언이나 대입 없이 불러오기만 해보겠습니다.


결과는 뭘까요?

"0/ 하나만 불러온다"입니다.


여기서 알아야 할 것이 두 가지 있습니다.


첫째

F5 컴파일로 폼을 불러와서 곧바로 커맨드2를 누르면 값이 "0/"가 됩니다. 왜냐면 일련의 동작없이도 전역변수는 이미 맨 윗줄에서 선언이 됐습니다.


위에서도 설명이 됐지만 byte는 최소 0부터 최대 255까지 256개의 숫자를 담을 수 있습니다. 숫자를 담기전의 초기값은 0입니다. 그렇기 때문에 커맨드 버튼 2번을 아무리 눌러도 0만 주구장창 텍스트박스에 대입이되고 눈에 보여지는것이죠.


아무리 커맨드버튼1번에 전역변수의 값이 0이 아니라 다른 수여도, 컴파일하고서 커맨드1의 작동없이는 커맨드2의 작동만으로는 0만 대입된다는것입니다.


둘째

커맨드1과 2를 눌렀을때 온전한 값을 텍스트박스에 대입하려면 커맨드버튼이 아닌 폼로드 같은곳에 미리 변수에  값을 넣어두어야 합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band