(3) 변수와 상수
<변수>
변수 : 어떤 알려지지 않은 값을 표현할 개체의 이름.
컴퓨터 기억장소 셀에 대한 추상화로서,
기억장소의 상대적 주소에 대한 이름
-> 데이터 저장을 위한 장소로 사용.
변수명 : 변수 안에 들어있는 값과 밀접하게 연관
<변수명 부여 규칙>
ㆍ 첫 문자는 반드시 한글이나 영문자로 시작
ㆍ 255자 이내로 작성
ㆍ 한글, 영문자, 숫자, 밑줄(_)은 사용 가능
ㆍ 마침표(.)나 형식 선언 문자, 작은 따옴표(')는 사용 불가
ㆍ 예약어(Sub, End, Dim, For 등)는 사용할 수 없음
ㆍ 영문 대문자와 소문자는 동일하게 취급
ㆍ같은 범위 내에서 중복된 이름을 가져선 안됨
<선언 형식>
{Public | Private | Dim | Static} 변수명 As 자료형
<변수명>
<헝그리언 표기법>
짧고 간단하면서도 의미 있는 이름
-> 판독력과 작성력 향상
예) int_sum iSum 합계
[변수명의 예]
ⓐ 틀린 변수명
End -> 예약어
1num -> 숫자로 시작
n*m -> 특수문자 사용
변 수 -> 공백
ⓐ 올바른 변수명
name_1
int_num
변수
num변수
n_m
<자료형>
자료형 : 컴퓨터 프로그램에서 자료형(Data Type)은
가질 수 있는 값의 범위와 행할 수 있는 연산에 대해
정의하는 것을 의미한다.
변수에 값을 넣기 위해서는 변수와 자료형이
일치해야 한다.
ㆍ수치형
[정수형] : ① Integer (2Byte)
-32,768 ~ 32,767
② Long (4Byte)
-2,147,483,648 ~ 2,147,483,647
[실수형 (부동소수점)] : ① Single (단정도, 4Byte)
-3.4*10^38 ~ 3.4*10^38
② Double (배정도, 8Byte)
-1.8*10^308 ~ 1.8*10^308
ㆍ논리형
- True/False의 2가지 값만 취급
Dim x As Boolean
ㆍ문자열형
- 문자 데이터만 취급
① 가변길이(0~약 2조자)
Dim Name As String
② 고정길이(1~약 65,400자)
Dim Name As String*15
ㆍ가변형
- 디폴트 변수 : 묵시적으로 선언된 모든 변수
- 여러 유형의 데이터를 취급
: 수치, 문자 모두 취급
- 수행 속도나 기억장소 활용에서는 비효율적
* 숫자 : 16Byte 할당
* 문자열 : 문자열 길이 + 22Byte
Dim address
Dim address As Variant
<변수의 선언 및 사용>
ㆍ 변수의 명시적(explicit) 선언
-> 명시적 선언을 지정하기 위해서는 프로그램
첫 줄에 직접 Option Explicit문을 적거나
[도구]-[옵션] 메뉴의 [편집기] 탭에서
'변수 선언 요구'를 체크하면 된다.
ㆍ변수의 명시적(explicit) 선언 방법
{Dim | Private | Public | Static} 변수명 As 자료형
예) Dim int sum As Integer
Dim str_name As String
ㆍ변수의 묵시적(implicit) 선언
선언문 없이, 변수를 문장 내에서 직접 사용
<변수의 종류(툥용범위)>
ㆍ통용 범위에 따른 종류
- 선언된 변수가 사용 가능한 문장의 범위
- 지역변수, 모듈변수, 전역변수
<지역변수>
ㆍ프로시저 안에서 선언
- 해당 프로시저 안에서만 사용가능
- 초기화 : 숫자 0, 문자 ""
ㆍDim Name As String
<모듈변수>
ㆍ모듈 수준에서 선언
- 코드창의 (일반)-(선언)에서 선언
- 동일 모듈 내의 모든 프로시저에서 사용 가능
ㆍPrivate(또는 Dim) Name As String
<전역변수>
ㆍ표준 모듈을 추가하여 선언
- (일반)-(선언)에서 선언
- 폼 모듈에서 선언 -> 변수가 선언된 폼의 이름을
붙여 사용
- 프로그램의 모든 모듈간에 공통으로 사용 가능
ㆍPublic Name As String
<변수의 종류(수명)>
ㆍ수명에 따른 종류
- 변수를 위해 할당된 기억공간을 차지하고 있는 시간
- 동적변수, 정적변수
<동적변수>
ㆍ모든 지역변수
- 프로시저에서 Dim으로 선언된 변수
ㆍ할당/회수
- 프로시저를 실행하는 매 순간
- 프로시저를 종료하는 순간
ㆍ재실행될 때 마다 변수의 값이 초기화
<정적변수>
ㆍ키워드 Static 사용
- Static Name As String
ㆍ할당/회수
- 프로시저를 처음 실행하는 순간
- 프로그램 종료 순간
ㆍ프로시저가 재실행되어도 이전 값을 유지
Dim D As Integer // 정수형 지역변수 D 선언
Static S As Integer // 정수형 정적변수 S 선언
D = D + 1 // 지역변수는 초기화할 때 0으로 초기화
=> 결과값은 계속 1 (0+1)
S = S + 1 // 정적변수는 값 유지
=> 1. (0+1) 2. (1+1), 3. (2+1) ....
Form1.Print D, S // 출력
<변수의 종류 정리>
<다양한 변수 선언>
-> 여러 개의 변수를 한 줄에서 모두 선언할 수 있다.
하지만 가독성을 높이기 위해
한 줄에 하나의 변수만 선언하는 것이 좋다.
ㆍDim i
ㆍDim i, j
ㆍDim i, j As Integer
ㆍDim i As Integer, j As Integer
<상수>
상수 : 변하지 않는 수를 의미.
프로그램을 작성하다 보면 고정된
숫자나 문자열이 계속 반복적으로
사용되는 경우가 있다.
이 고정된 숫자나 문자열에 읽기 쉬운 이름을
부여하여 사용하면 프로그램의 가독성을
높일 수 있다.
ㆍ상수의 선언 방법
[Private | Public} Const 상수명 [As 자료형] = 상수값
ex) Private Const 파이 As Single = 3.14
Private Const Pi As Double = 3.141592
Const Radius = 30
Const Str As String = "String"