Download presentation
Presentation is loading. Please wait.
1
3장 변수와 연산자 3.1 변수 3.1.1 변수의 선언 3.1.2 데이터 형 3.1.3 변수의 선언 방법
3.1.4 변수의 통용 범위 3.1.5 상수 3.2 연산자 3.2.1 산술 연산자 3.2.2 비교 연산자 3.2.3 논리 연산자 3.2.4 연결 연산자 3.2.5 연산자 우선순위
2
학 습 목 표 프로그래밍 언어란 컴퓨터에게 어떤 작업을 지시하기 위한 규칙을 정해놓은 언어이다. 3, 5, 6장에서는 비주얼베이직으로 프로그램을 작성하는데 있어 필요한 기본 문법을 익혀보도록 하자.
3
3.1 변수 변수는 프로그램에서 필요한 데이터를 저장하기 위한 기억장소를 의미한다. 변수를 사용하려면 그 변수에 들어갈 데이터의 형식과 크기에 맞게 변수를 만들어야 한다.
4
변수를 선언한다는 것은 어떤 데이터 형의 변수를 어떤 이름을 사용할지를 프로그램에게 미리 알려주는 것을 말한다.
3.1.1 변수의 선언 변수를 선언한다는 것은 어떤 데이터 형의 변수를 어떤 이름을 사용할지를 프로그램에게 미리 알려주는 것을 말한다. 변수 선언 방법 [Public|Private|Dim|Static] 변수명 As 데이터 형 - [Public|Private|Dim|Static] : 변수의 통용범위를 지정하는 부분 변수명 : 변수의 이름 As 데이터 형 : 변수에 저장될 데이터 유형이 무엇인가를 지정
5
3.1.1 변수의 선언 변수를 정의하는 규칙 - 변수명은 문자로 구성되며, 첫 문자는 반드시 한글이나 영문자로 시작해야 한다.
- 첫 문자로 기호나 숫자 등은 사용할 수 없다. - 문자의 경우 한글, 영문자, 숫자, 밑줄문자(_)를 사용할 수 있고, 마침표(.)나 형식 포함할 수 없다. 또 주석으로 사용되는 작은 따옴표(‘)를 사용할 수 없다. - 255자를 초과할 수 없다. - 비주얼베이직에서 사용하는 예약어는 사용할 수 없다. - 대문자와 소문자를 구분하지 않는다.
6
3.1.1 변수의 선언 [표3-1] 올바른 변수명과 올바르지 않은 변수명 올바른 변수명 사용 올바르지 않은 변수명 사용
잘못된 이유 A3 20Time 숫자로 시작 My_Name My#Name 특수 문자의 사용 End 예약된 키워드 사용 MyName My Name 공백포함
7
3.1.1 변수의 선언 [표3-2] 다양한 변수 선언의 방법 변수 선언 예 설명 Dim intA As Integer
Dim intA As Integer, intB As Integer Dim intA As Integer, intB As String 쉼표(,) 문자를 사용하여 여러 개의 변수를 한꺼번에 선언 Dim intA, intB, intC As Integer intA, intB 모두 정수형 변수로 선언한 것이 아니라, intC만 정수형으로 선언되고, 데이터 형을 지정하지 않은 intA, intB는 Variant형으로 선언된다.
8
3.1.2 데이터 형 데이터 형이란 Integer, Long, String 등 변수명에 해당하는 기억공간이 메모리에서 얼마만큼의 크기를 가지고 있고, 그 기억 공간에 저장되는 값이 어떤 유형인지를 결정하는 요소이다. 변수 선언시 데이터 형을 지정하지 않으면, 비주얼베이직의 기본 데이터 형인 Variant형으로 자동 저장된다.
9
3.1.2 데이터 형 [표3-3] 데이터 형식 데이터 형 크기(Byte) 값의 범위 정수형 Byte 1 0 ~ 255
Integer 2 -32,768 ∼ 32,767 Long 3 -2,147,483,648 ∼ 2,147,483,647 실수형 Single 4 E38 ∼ E-45까지(음수값) E-45 ∼ E38까지(양수값) Double 8 E308 ∼ E-324까지(음수값) E-324 ∼ E308까지(양수값) 논리형 Boolean 부울값 (True, False ) 문자열형 String(가변길이) 가변길이 10바이트를 더한 문자열 길이 (0∼ 약 2조) String(고정길이) 고정길이 1∼ 약 65,400의 문자열 길이 통화형 Currency -922,337,203,685, ∼ 922,337,203,685, 가변형 Variant(숫자) 16 Double형 범위 내의 모든 숫자 Variant(문자) 22바이트 + 문자열 길이 변수 길이 String과 같은 범위 날짜형 Date 100년 1월 1일에서 9999년 12월 1일까지
10
3.1.2 데이터 형 1) 정수형 정수형은 소수점을 포함하지 않는 데이터 형식으로 Byte, Integer, Long이라는 3가지 데이터 형으로 나뉜다. 판매 금액과 같이 커다란 숫자 값을 저장할 목적이라면 Long형이 적절하며, 시험 점수와 같이 작은 값을 저장할 목적이라면 Byte나 Integer형을 사용함으로써 메모리를 절약할 수 있다. 단 Byte형은 음수를 표현할 수 없다.
11
3.1.2 데이터 형 2) 실수형 실수형은 소수점이나 지수를 포함하는 숫자를 위한 데이터 형식으로 Single이나 Double 형식이 있다. 3) 논리형 논리형 데이터는 True(참)과 False(거짓)의 두 가지 경우만 지정될 수 있다. 정수, 실수 등 모든 숫자 데이터는 논리값으로 사용될 수 있다. 이때 0은 False로, 0을 제외한 모든 값은 True로 인식된다.
12
3.1.2 데이터 형 4) 문자열(String)형 문자열 데이터를 저장하려면 String 형식을 사용하는데 가변길이와 고정길이가 있다. 가변길이 Dim strName As String strName = "sung mi" 이와 같이 변수를 선언할 때 길이를 지정하지 않으면 가변 길이로 변수가 생성되어, 실제로 문자열이 변수에 저장될 때(기억되는 문자열의 길이 + 10바이트) 변수의 크기가 결정된다. 고정길이 Dim strZip As String * 6 Dim strSno As String * 13 데이터 형식 뒤에 ‘*’기호와 변수의 정확한 길이를 지정하여 선언해주면 된다.
13
3.1.2 데이터 형 5) 통화(Currency)형 Currency형은 이름에서 짐작할 수 있듯이 주로 금액과 같은 커다란 수치를 다루기 위한 데이터 형이다. 소수점 이상 15자리와 소수점 이하 4자리라는 어마어마한 값을 표현할 수 있다. 6) 가변(Variant)형 Variant형은 이름 그대로 형태가 정해지지 않은 다시 말해 어떤 종류의 값도 모두 대입시킬 수 있는 데이터 형으로 상당히 융통성 있는 데이터 형이라 할 수 있다.
14
- 어떤 종류의 값도 모두 대입시킬 수 있는 상당히 융통성 있는 데이터 형이지만, 프로그램의 명확성 및 효율성이 떨어진다.
3.1.2 데이터 형 6) 가변(Variant)형(계속) 가변형 선언 방법 Dim v Dim v As Variant 가변형의 문제점 - 어떤 종류의 값도 모두 대입시킬 수 있는 상당히 융통성 있는 데이터 형이지만, 프로그램의 명확성 및 효율성이 떨어진다. 메모리의 낭비가 발생되고, 처리 속도 역시 떨어진다. 데이터 형 간의 차이로 오류가 발생할 수도 있다.
15
3.1.2 데이터 형 7) 날짜(Date)형 Date형은 날짜와 시간 등을 표현할 대 사용하는 데이터 형식으로 다음과 같이 데이터의 앞과 뒤는 #로 묶어서 표현해주어야 한다. 예) Dim d As Date d = # # d = #20:30:30# d = # :30:30#
16
3.1.3 변수의 선언 방법 1) 변수의 암시적 선언 비주얼베이직에서는 변수의 선언(Dim으로 시작하는 문장) 없이 바로 변수를 사용할 수 있는 기능을 제공한다. 이것을 변수의 암시적 선언이라 한다. 선언 없이 사용한 변수는 비주얼베이직의 기본 데이터 형인 Variant로 선언되므로 가급적 사용하지 않는 것이 좋다.
17
3.1.3 변수의 선언 방법 2) 변수의 명시적 선언 Dim문을 사용하여 변수를 명시적으로 선언해줌으로써 메모리를 절약할 수 있고, 코드의 실행속도를 빠르게 할 수 있고, 오류 발생을 피할 수 있다. Option Explicit 문 코드의 맨 윗부분인 일반 선언부 영역에 작성한다. 자동적으로 명시적 선언을 지정하기 위해서는 [도구]-[옵션] 메뉴를 선택한 후 [편집기] 탭에서 ‘변수 선언 요구’를 체크한다. 이 문장은 선언되지 않은 변수명을 만나면 비주얼베이직으로 하여금 오류 메시지를 보여주도록 지시한다.
18
통용 범위란, 어떤 임의의 영역에서 선언된 변수를 다른 영역에서 접근가능한지를 결정한다.
3.1.4 변수의 통용 범위 통용 범위란, 어떤 임의의 영역에서 선언된 변수를 다른 영역에서 접근가능한지를 결정한다. 변수는 통용 범위에 따라 지역 변수, 정적 변수, 전역 변수, 모듈 변수로 구분된다. [표3-4] 변수 선언 옵션 옵션 변수의 선언위치 변수의 통용 범위 변수의 수명 Dim 프로시저 수준 선언된 프로시저 안 변수가 선언된 프로시저가 종료하면 해당하는 변수는 사라지고 그 값도 초기화 Static 프로그램이 끝날 때가지 값을 유지 Private 모듈 수준 선언된 모듈 안 Public 모든 모듈, 즉 프로그램 전체에서 통용
19
실습예제 1) 지역변수와 정적변수 예제 코드 작성
20
실습예제 1) 지역변수와 정적변수 예제 실행 결과
21
상수는 변수와 달리 한번 선언하면 변하지 않는 숫자 값이나 문자 값을 말한다.
3.1.5 상수 상수는 변수와 달리 한번 선언하면 변하지 않는 숫자 값이나 문자 값을 말한다. 예) PI = 상수를 사용하면 코드를 손쉽게 유지 관리할 수 있고, 코드의 가독성을 향상시킬 수 있다. 크게 내장 상수와 사용자 정의 상수로 나뉘어진다.
22
비주얼베이직에는 많은 내장 상수를 제공하며, 대부분 “vb”라는 접두어로 시작된다.
3.1.5 상수 1) 사용자 정의 상수 사용자 정의 상수 선언 구문 [Public|Private] Const 상수명 [As 데이터 형] = 상수값 - 상수는 Public, Private 둘 중 하나를 사용한다. 예) Public Const PI = Public Const TEN as Integer = 10 2) 내장 상수 비주얼베이직에는 많은 내장 상수를 제공하며, 대부분 “vb”라는 접두어로 시작된다.
23
연산자는 기능에 따라 크게 다음과 같이 나눌 수 있다. [표3-5] 연산자의 종류
3.2 연산자 연산자는 기능에 따라 크게 다음과 같이 나눌 수 있다. [표3-5] 연산자의 종류 작업 언어 요소 산술 연산자 +, -, *, /, \, MOD, ^ 비교 연산자 =, <, >, <=, >=, <> 논리 연산자 Not, And, Or, Xor, Eqv, Imp 연결 연산자 &
24
산술 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈 등과 같은 사칙연산기능을 제공한다. [표3-6] 산술 연산자의 종류
3.2.1 산술 연산자 산술 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈 등과 같은 사칙연산기능을 제공한다. [표3-6] 산술 연산자의 종류 산술 연산자 의미 사용 예 + 덧셈 → 14 - 뺄셈 6 – 3 → 3 * 곱셈 6 * 7 → 42 / 나눗셈 6 / 4 → 1.5 \ 정수 나눗셈 6 \ 4 → 1 MOD 나머지 6 MOD 2 → 0 ^ 지수 6 ^ 2 → 36
25
3.2.2 비교 연산자 비교 연산자는 일반적으로 If문과 같은 제어 구조에서 조건에 대해 피연산자를 비교하는데 사용하며, 연산의 결과값은 참이나 거짓으로 표현된다. [표3-7] 비교 연산자의 종류 비교 연산자 의미 사용 예 = 같다 3 = → 결과 : False < 보다 작다 3 < → 결과 : True > 보다 크다 3 > → 결과 : False <= 보다 작거나 같다 3 <= 8 → 결과 : True >= 보다 크거나 같다 3 >= 8 → 결과 : False <> 같지 않다 3 <> 8 → 결과 : True
26
논리 연산자는 두 피연산자 간의 논리적인 관계를 나타낼 때 사용하는 연산자로, 연산의 결과값은 참이나 거짓으로 표현된다.
3.2.3 논리 연산자 논리 연산자는 두 피연산자 간의 논리적인 관계를 나타낼 때 사용하는 연산자로, 연산의 결과값은 참이나 거짓으로 표현된다. [표3-8] 논리 연산자의 종류 논리 연산자 의미 우선순위 Not 논리부정(참이면 거짓, 거짓이면 참으로 전환) 1 And 논리곱(두 값 모두 참일 때만 참) 2 Or 논리합(두 값 모두 거짓일 때만 거짓) 3 Xor 배타적논리곱(두 값이 서로 다를 때만 참) 4 Eqv 동치(두 값이 서로 같을 때만 참) 5 Imp 포함(식1이 참, 식2가 거짓일 때만 거짓) 6
27
문자열을 연결하기 위해 &, + 연산자가 사용된다.
3.2.4 연결 연산자 문자열을 연결하기 위해 &, + 연산자가 사용된다. + 연산자는 산술 연산자로도 사용되므로 문자열을 연결하기 위해서는 가능하면 & 연산자를 사용하도록 하자. 예) Print “A” + “B” → 결과 : AB Print “A” & “B” → 결과 : AB Print → 결과 : 3 Print 1 & → 결과 : 12 Print 1 & “2” → 결과 : 12 Print 1 + “정수” → 결과 : 오류 발생
28
= , <> , < , >, <=, >=, Is
3.2.5 연산자 우선순위 [표3-9] 연산자 우선순위 우선순위 연산자 종류 연산자 1 산술/연결 연산자 지수(^) 2 부정(-) 3 곱셈과 나눗셈(*, /) 4 정수 나눗셈(\) 5 나머지 연산(Mod) 6 덧셈과 뺄셈(+, -) 7 문자열 연결(&) 비교 연산자 왼쪽에서 오른쪽 = , <> , < , >, <=, >=, Is 논리 연산자 Not And Or Xor Eqv Imp &
Similar presentations