220 likes | 435 Views
2 장 변수와 연산자. 변수. 변수 (Variable) 어떤 알려지지 않은 값을 표현할 개체의 이름 컴퓨터 기억장소 셀에 대한 추상화로서 , 기억장소의 상대적 주소에 대한 이름 데이터 저장을 위한 장소로 사용 속성 이름 (name, identifier) 프로그램에서 개체를 구별하기 위한 문자열 값 (value) : 기억장소 셀의 내용 타입 (type) : 값의 범위 + 연산의 집합 주소 (address) 생존기간 , 수명 (lifetime) 영역 (scope). 변수의 정의. 선언 형식
E N D
변수 • 변수(Variable) • 어떤 알려지지 않은 값을 표현할 개체의 이름 • 컴퓨터 기억장소 셀에 대한 추상화로서, 기억장소의 상대적 주소에 대한 이름 데이터 저장을 위한 장소로 사용 • 속성 • 이름(name, identifier) • 프로그램에서 개체를 구별하기 위한 문자열 • 값(value) : 기억장소 셀의 내용 • 타입(type) : 값의 범위 + 연산의 집합 • 주소(address) • 생존기간, 수명(lifetime) • 영역(scope)
변수의 정의 • 선언 형식 • 변수명 {PublicⅠPrivateⅠDimⅠStatic} 변수명 As 자료형 255자 영문자 / 한글 {알파벳/한글, 숫자, 밑줄(_)}0 • 대소문자를 구별하지 않음 • 예약어 사용 불가(If, String, Private, Sub, End, Long, Beep 등) • 짧고 간단하면서도 의미 있는 이름(판독력과 작성력 향상) My-name, My_name, My name, _Name, @mail,4you , Else, 이름, k7
변수의 자료형 • 종류 • 수치형(정수형, 실수형) • 논리형, 문자열형, 가변형 • Byte, Currency, Decimal, Date, Object
변수의 자료형 • 수치형(Integer, Long, Single, Double) • 논리형(Boolean) • True/False의 2가지 값만 취급 • 문자열형(String) • 문자 데이터만 취급 Dim x AsBoolean
변수의 자료형 • 가변형(Variant) • 디폴트 변수 • 묵시적으로 선언된 모든 변수 • 여러 유형의 데이터를 취급 • 수치, 문자 모두 취급 • 수행 속도나 기억장소 활용 측면에서는 비효율적 • 숫자 : 16 바이트 할당 • 문자열 : 문자열 길이 + 22 바이트 • 선언 Dim address (As 자료형 생략) Dim address As Variant (자료형명시)
변수 선언 • 자료를 저장할 적절한 크기의 기억공간 확보 • 선언 방법 • 묵시적(implicit) 선언 • 선언문 없이, 변수를 문장 내에서 직접 사용 • 명시적(explicit) 선언 • 프로시저/모듈 내에서 변수 선언문 사용
변수 선언 • 명시적 선언 요구 • 모듈 내에 Option Explicit기술(1) • “사용할 모든 변수들은 선언을 필요로 한다” • [도구]-[옵션]-[편집기] 탭(2) Option Explicit Private a As Integer Public x As Integer Private Sub Command1_Click() Dim a As Integer a = 10 Form1.Print a End Sub Private Sub Command2_Click() Dim b As Integer Form1.Print a b = 5 Form1.Print b x = 3 End Sub
변수 선언 • 선언 형식 • 선언 예 {PublicⅠPrivateⅠDimⅠStatic} 변수명 As 자료형 Dim i As Integer Dim Score As Double Dim Name As String Dim 주소 As Variant Dim A As Boolean Dim x, y As Double Dim x As Double, y As Double
지역변수 • 프로시저 안에서 선언 • 해당 프로시저 안에서만 사용 가능 • 초기화: 숫자 0, 문자 “” • Dim Name As String 변수의 종류 (1) • 통용 범위에 따른 종류 • 선언된 변수가 사용 가능한 문장의 범위 • 지역변수, 모듈변수, 전역변수 Option Explicit Private a As Integer Public x As Integer Private Sub Command1_Click() Dim a As Integer a = 10 Form1.Print a End Sub Private Sub Command2_Click() Dim b As Integer Form1.Print a b = 5 Form1.Print b x = 3 End Sub
전역변수 모듈변수 • 표준 모듈을 추가하여 선언 • (일반)-(선언)에서 선언 • 폼 모듈에서 선언 변수가 선언된 폼의 이름을 붙여 사용 • 프로그램의 모든 모듈간에 공통으로 사용 가능 • Public Name As String • 모듈 수준에서 선언 • 코드창의 (일반)-(선언)에서 선언 • 동일 모듈 내의 모든 프로시저에서 사용 가능 • Private(또는Dim) Name As String 변수의 종류 (1) Option Explicit Private a As Integer Public x As Integer Private Sub Command1_Click() Dim a As Integer a = 10 Form1.Print a End Sub Private Sub Command2_Click() Dim b As Integer Form1.Print a b = 5 Form1.Print b x = 3 End Sub
지역/모듈/전역 변수 Option Explicit Private a As Integer Public x As Integer Private Sub Command1_Click() Dim a As Integer a = 10 Form1.Print a End Sub Private Sub Command2_Click() Dim b As Integer Form1.Print a b = 5 Form1.Print b x = 3 End Sub Form1 Option Explicit Private Sub Command3_Click() Form2.Print Form1.x End Sub Form2 ④ ① ② ③
폼/모듈 추가 • [프로젝트]-[폼 추가] / [모듈 추가] • 프로젝트 탐색창에서 단축메뉴
변수의종류 (2) • 수명에 따른 종류 • 변수를 위해 할당된 기억공간을 차지하고 있는 시간 • 동적변수, 정적변수 동적변수 • 모든 지역변수 : 프로시저에서 Dim으로 선언된 변수 • 할당/회수 : 프로시저를 실행하는 매 순간, 프로시저를 종료하는 순간 • 재실행될 때 마다 변수의 값이 초기화된다 정적변수 • 키워드 Static사용 : Static Name As String • 할당/회수 : 프로시저를 처음 실행하는 순간, 프로그램 종료 순간 • 프로시저가 재실행되어도 이전 값을 유지
동적/정적 변수 Private Sub Command1_Click() Dim D As Integer Static S As Integer D = D + 1 S = S + 1 Form1.Print D, S End Sub
상수 • Constant • 실행 중에 변하지 않는 고정된 값을 표현 • 사용 형식 • 판독력과 수정력의 향상 {Public|Private} Const 상수명 [As 자료형] = 상수값 Private Const Pi As Double = 3.141592 Const Radius = 30 Const Str As String = “knou”
연결 연산자 Private Sub Form_Load() Form1.Show Print "ab" + "cd" Print "ab" & "cd" Print 12 + 12 Print 12 & 12 Print "ab" + 12 Print "ab" & 12 End Sub abcd abcd 24 1212 Error ab12
연산자 우선순위 ^ -(부정) *, / 높음 산술 연산자 \ Mod +, - & 연결 연산자 관계 연산자 <, <=, >, >=, =, <> Not And Or 논리 연산자 낮음 Eqv Xor Imp