01 변수와 데이터 유형

Estimated reading: 2 minutes 18 views

변수(Variable)데이터를 저장하는 메모리 공간의 이름입니다.
오토핫키 v2에서는 변수에 데이터를 저장하고 필요할 때 불러와 사용하는 방식으로 프로그램을 작성합니다.
변수를 통해 동적 데이터 저장, 조건 제어, 함수 호출 등의 작업을 수행할 수 있습니다.

오토핫키 v2에서는 문자열(String), 숫자(Number), 불리언(Boolean)3가지 주요 데이터 타입을 사용합니다.
타입 선언 없이도 자동으로 데이터 타입이 결정되며, 상황에 따라 데이터 타입이 자동 변환(암시적 변환)됩니다.

1. 변수의 선언 및 초기화

변수를 선언하는 방식은 변수명 := 값 형태로 작성합니다.
변수명에 공백이나 특수문자는 사용할 수 없고, 대소문자를 구분하지 않습니다.

name := "홍길동"    ; 문자열 변수
age := 25           ; 숫자 변수
isActive := true    ; 불리언 변수

설명

  • name 변수에는 문자열 "홍길동"이 저장됩니다.
  • age 변수에는 숫자 25가 저장됩니다.
  • isActive 변수에는 불리언 값 true가 저장됩니다.

Tip: 오토핫키 v2에서는 := 연산자를 통해 변수를 선언 및 초기화합니다.
v1의 name = "홍길동" 형식은 더 이상 사용되지 않습니다.

2. 데이터 타입

오토핫키 v2의 데이터 타입은 명시적으로 지정할 필요 없이 자동으로 할당됩니다.
다음은 오토핫키 v2의 주요 데이터 타입입니다.

1) 문자열 (String)

  • 문자열(String)텍스트 데이터를 표현하는 타입입니다.
  • 큰따옴표("")작은따옴표(”)로 감싸서 문자열을 작성합니다.
  • 문자열은 텍스트, 기호, 공백, 숫자도 모두 문자로 인식합니다.
greeting := "안녕하세요, 오토핫키 사용자님!"
filePath := 'C:\Users\Documents'

설명

  • greeting 변수에 문자열 "안녕하세요, 오토핫키 사용자님!"이 저장됩니다.
  • filePath 변수에 문자열 ‘C:\Users\Documents’가 저장됩니다.

문자열 합치기 (Concatenation)

오토핫키 v2에서는 문자열 연결 연산자(.)를 사용하여 문자열을 이어붙일 수 있습니다.
두 개 이상의 문자열을 하나로 결합할 때 사용합니다.

예제 1: 문자열 결합

firstName := "홍"
lastName := "길동"
fullName := firstName . lastName ; '홍길동'

MsgBox("이름: " fullName) ; 결과: 이름: 홍길동

설명

  • firstName"홍", lastName"길동"이 저장됩니다.
  • 문자열 연결 연산자 (.)를 사용하여 firstName과 lastName을 결합합니다.
  • MsgBox"이름: 홍길동"이 출력됩니다.

예제 2: 변수와 문자열 결합

userName := "김철수"
message := "안녕하세요, " . userName . "님! 오늘도 좋은 하루 되세요."

MsgBox(message) ; 결과: 안녕하세요, 김철수님! 오늘도 좋은 하루 되세요.

설명

  • userName"김철수"가 저장됩니다.
  • "안녕하세요, " + userName + "님! 오늘도 좋은 하루 되세요."를 결합하여 message 변수에 저장합니다.
  • MsgBox"안녕하세요, 김철수님! 오늘도 좋은 하루 되세요."가 출력됩니다.

예제 3: 문자열 합치기 (숫자 포함)

productName := "USB 메모리"
price := 15000
info := productName . "의 가격은 " . price . "원입니다."

MsgBox(info) ; 결과: USB 메모리의 가격은 15000원입니다.

설명

  • productName"USB 메모리"가 저장됩니다.
  • price숫자 15000이 저장됩니다.
  • 문자열과 숫자를 결합하여 info 변수에 저장합니다.
  • MsgBox"USB 메모리의 가격은 15000원입니다."가 출력됩니다.

Tip: 숫자도 자동으로 문자열로 변환되므로, 숫자를 문자열로 변환할 필요가 없습니다.


예제 4: 여러 개의 문자열 연결

part1 := "오늘의"
part2 := " 날씨는"
part3 := " 맑음입니다."

message := part1 . part2 . part3

MsgBox(message) ; 결과: 오늘의 날씨는 맑음입니다.

설명

  • part1, part2, part3의 문자열을 . 연산자로 결합합니다.
  • MsgBox"오늘의 날씨는 맑음입니다."가 출력됩니다.

문자열의 주요 함수

  • StrLen(문자열): 문자열의 길이를 반환합니다.
  • SubStr(문자열, 시작위치, 길이): 문자열의 특정 부분을 잘라냅니다.
msg := "Hello, World!"
length := StrLen(msg) ; 문자열의 길이 = 13
subMsg := SubStr(msg, 1, 5) ; 첫 번째부터 5글자 추출 (Hello)
MsgBox("문자열의 길이: " length)
MsgBox("추출한 문자열: " subMsg)

설명

  • StrLen(msg)msg의 길이 13을 반환합니다.
  • SubStr(msg, 1, 5)첫 번째부터 5글자(Hello)를 추출합니다.

2) 숫자 (Number)

  • 숫자(Number)정수(Integer) 또는 실수(Float) 형태로 사용됩니다.
  • 오토핫키에서는 정수, 소수, 음수를 모두 지원합니다.
age := 25           ; 정수
height := 170.5     ; 소수
temperature := -5.3 ; 음수

설명

  • age에 정수 25, height에 실수 170.5, temperature에 음수 -5.3이 저장됩니다.

숫자 타입 확인

변수에 저장된 숫자가 정수인지 실수인지 확인할 때는 VarType() 함수를 사용할 수 있습니다.

num1 := 100
num2 := 3.14

MsgBox("num1의 타입: " VarType(num1)) ; Number
MsgBox("num2의 타입: " VarType(num2)) ; Number

3) 불리언 (Boolean)

  • 불리언(Boolean)true 또는 false 값을 가집니다.
  • 조건문(if)이나 반복문(while)에서 자주 사용됩니다.
isActive := true
isExpired := false

if (isActive) {
    MsgBox("활성화 상태입니다.")
} else {
    MsgBox("비활성화 상태입니다.")
}

설명

  • isActivetrue이므로 "활성화 상태입니다." 메시지가 출력됩니다.

불리언 관련 연산

불리언 값은 true, false로 비교할 수 있으며, if문이나 while문에서 주로 사용됩니다.

isDone := false
if (!isDone) {
    MsgBox("작업이 완료되지 않았습니다.")
}

설명

  • !isDonefalse를 반전시켜 true로 만듭니다.
  • MsgBox"작업이 완료되지 않았습니다."가 출력됩니다.

3. 데이터 타입 확인

오토핫키 v2에서는 변수의 타입을 명시적으로 선언하지 않지만, VarType() 함수로 변수의 타입을 확인할 수 있습니다.

a := "Hello"
b := 123
c := true

MsgBox("a의 타입: " VarType(a)) ; String
MsgBox("b의 타입: " VarType(b)) ; Number
MsgBox("c의 타입: " VarType(c)) ; Boolean

설명

  • VarType(a)String을 반환합니다.
  • VarType(b)Number를 반환합니다.
  • VarType(c)Boolean을 반환합니다.

4. 데이터 타입 자동 변환

오토핫키 v2에서는 암시적 변환(Implicit Type Conversion)이 일어납니다.
즉, 문자열이 숫자로 변환되거나, 숫자가 문자열로 변환되는 상황이 자주 발생합니다.

a := "5"
b := 10
result := a + b ; 15 (문자열 '5'가 숫자 5로 자동 변환됨)
MsgBox("계산 결과: " result)

설명

  • a에 문자열 ‘5’가 들어있지만, b(숫자 10)와의 연산에서 자동으로 숫자 5로 변환됩니다.

5. 변수의 범위 (전역, 지역)

변수는 전역 변수(Global Variable)지역 변수(Local Variable)로 나뉩니다.

  • 전역 변수(Global Variable): 스크립트 전체에서 사용할 수 있는 변수입니다.
  • 지역 변수(Local Variable): 함수 내부에서만 사용할 수 있는 변수입니다.
globalVar := "전역 변수입니다."

MyFunction() {
    localVar := "지역 변수입니다."
    MsgBox("지역 변수: " localVar)
    MsgBox("전역 변수: " globalVar) ; 전역 변수는 함수 내부에서도 사용 가능
}

MyFunction()

설명

  • localVar지역 변수로, 함수 내부에서만 사용할 수 있습니다.
  • globalVar전역 변수로, 스크립트 어디서든 접근할 수 있습니다.

정리

  1. 문자열(String), 숫자(Number), 불리언(Boolean)은 오토핫키의 3가지 주요 데이터 타입입니다.
  2. 변수를 선언할 때 := 기호를 사용하며, 변수에 데이터를 할당할 때 데이터 타입이 자동 결정됩니다.
  3. VarType() 함수로 변수의 타입을 확인할 수 있습니다.
  4. 암시적 타입 변환으로 문자열과 숫자가 자동 변환될 수 있습니다.
  5. 전역 변수와 지역 변수를 명확히 구분하여 사용해야 합니다.
Subscribe
Notify of
guest
0 댓글
Inline Feedbacks
View all comments