LearningNote
[오토핫키] 변수와 표현식(2) 본문
[오토핫키] 변수와 표현식(2)
표현식으로 변수를 어떻게 사용하는지
다양한 방법으로 실습해보겠습니다.
전에 배웠던 내용도 일부 포함되어 있으니 복습도 함께 해보세요.
바로 예제로 들어가겠습니다.
준비된 예제는 국어, 영어, 수학의 점수를 변수에 담아두고,
각 과목의 점수 및 총점과 평균을 메시지 박스에 출력하는 예제입니다.
다음의 코드를 작성해보세요.
!3::
kor := 100
eng := 80
math := 90
tot := kor + eng + math
avg := tot / 3
MsgBox, 국어 점수는 kor 입니다. ; (x)
MsgBox, 국어 점수는 %kor% 입니다. ; (o)
MsgBox, % "영어 점수는 " %eng% " 입니다." ; (x)
MsgBox, % "영어 점수는 " eng " 입니다." ; (o)
MsgBox, % "수학 점수는 " + kor + " 입니다." ; (x)
MsgBox, % "수학 점수는 " . kor . " 입니다." ; (o)
MsgBox, "국영수 총점은 " %tot% " 입니다." ; (x)
MsgBox, % "국영수 총점은 " tot " 입니다." ; (o)
MsgBox, 국영수 평균은`n%avg% 입니다. ; 줄바꿈 기호(`n)
MsgBox, 국영수 평균은`t%avg% 입니다. ; 탭 기호(`t)
return
국어는 100점, 영어는 80점, 수학은 90점을 각 변수에 대입하였습니다.
tot 변수에는 국영수 총점을 계산하여 대입하였으며,
연산자는 더하기(+) 기호를 사용하였습니다.
avg 변수에는 국영수 총점을 세 과목으로 나누어 평균값을 대입하였습니다.
이미 총점을 계산하여 담아놓은 변수인 tot 가 있기 때문에 tot 를 과목수 3으로 나누었습니다.
연산자는 나누기(/) 기호를 사용하였습니다.
국어 점수부터 살펴볼게요.
출력을 원하는 형태는 이렇습니다.
국어 점수는 100 입니다.
실행해보시면 아시겠지만, 첫 번째 메시지 박스는,
점수 대신 kor 이라는 변수명이 그대로 나타납니다.
변수값을 꺼내오려면 '%' 기호가 있어야겠죠.
그래서 kor 변수의 양쪽에 '%' 기호를 감싸면 우리가 원하는 형태로 출력이 되는 것을 볼 수 있습니다.
MsgBox, 국어 점수는 kor 입니다. ; (x)
MsgBox, 국어 점수는 %kor% 입니다. ; (o)
이번에는 영어 점수를 살펴보겠습니다.
출력을 원하는 형태는 이렇습니다.
영어 점수는 80 입니다.
변수 양쪽에 '%' 기호를 감싸는 것 대신,
명령어와 첫 번째 인자 사이에 '(공백) % (공백)' 을 넣었습니다.
이때 주의할 점은, 앞에서 '%' 기호를 사용하였을 때는,
그 뒤에서는 변수명에 '%' 기호를 감싸는 형태로 사용할 수가 없다는 점입니다.
MsgBox, % "영어 점수는 " %eng% " 입니다." ; (x)
MsgBox, % "영어 점수는 " eng " 입니다." ; (o)
한번 실행해볼까요?
국어 점수에 대한 메시지 박스가 또 뜨면 귀찮기 때문에
끝난 메시지 박스가 있는 줄에서 Ctrl + q 핫키를 눌러 주석 처리하면서 해보세요.
영어 점수에 관련된 메시지 박스가 끝나면 뒤쪽 것은 당장 볼 것이 아니기 때문에
F4 키를 눌러 오토핫키를 종료하시고요.
영어점수에 대한 메시지 박스를 확인해보셨나요?
결과가 어떻게 달라지는지 천천히 살펴보시기 바랍니다.
다음은 수학 점수입니다.
출력을 원하는 형태는 이렇습니다.
수학 점수는 90 입니다.
마침표(.) 기호를 써서 문자열끼리 붙이는 방법입니다.
다른 프로그래밍 언어를 써보셨다면 다소 생소하실 것입니다.
보통 '+' 기호 또는 '&' 기호를 많이 쓰는데요,
오토핫키에서는 '.' 기호를 사용합니다.
때에 따라 붙임 기호를 아예 생략하기도 합니다.
MsgBox, % "수학 점수는 " + kor + " 입니다." ; (x)
MsgBox, % "수학 점수는 " . kor . " 입니다." ; (o)
국영수 총점에서는 큰따옴표에 집중해서 살펴보시기 바랍니다.
우리가 원하는 출력 형태는 이렇습니다.
국영수 총점은 270 입니다.
MsgBox 명령어 바로 다음에 '%' 기호를 사용하지 않는다면,
큰따옴표를 굳이 붙이지 않아도 문자열로 인식이 됩니다.
따라서 큰따옴표를 붙인다면 그 기호마저도 출력해야 하는 문자열로 인식해버립니다.
각각의 출력 결과를 살펴보세요.
MsgBox, "국영수 총점은 " %tot% " 입니다." ; (x)
MsgBox, % "국영수 총점은 " tot " 입니다." ; (o)
국영수 평균 예제에서는 줄 바꿈 기호와 탭 기호를 어떻게 표현하는지 살펴보겠습니다.
물결 표시(~) 와 같은 키에 위치한 back quote(`) 를 오토핫키에서는 이스케이프(Escape) 문자라고 합니다.
이 이스케이프 문자 바로 다음에 오는 문자는 그 문자 그대로를 뜻하는 것이 아니라
특수한 용도로 사용이 된다고 컴퓨터에게 알려주는 역할을 합니다.
그 특수 용도의 기호는 약속되어 있습니다.
대표적인 것이
`n(줄 바꿈) 기호와 `t(탭) 기호입니다.
직접 실행해보시면 바로 어떤 기능을 하는지 알 수 있습니다.
MsgBox, 국영수 평균은`n%avg% 입니다. ; 줄바꿈 기호(`n)
MsgBox, 국영수 평균은`t%avg% 입니다. ; 탭 기호(`t)
소스 코드와 메시지 박스 출력 결과를 비교해가며
여러 번 실습해보시기를 권해드립니다.
실행 전에 결과를 먼저 예상을 해보시고,
예상과 실제 결과가 일치하는지 살펴보는 것이 효과적입니다.
더 깊이 생각을 하게 되고 더 빨리 익히게 될 것입니다.
다소 어렵게 느껴질 거라 생각됩니다.
변수를 사용하는 경우가 매우 많기 때문에
너무 조바심 갖지 마시고
사용할 때마다 자연스럽게 차곡차곡 내공을 쌓아가시면 됩니다.
고생 많으셨습니다.
다음의 사이트에서도 잘 설명되어 있으니 읽어보실 것을 추천드립니다.
http://autohotkeykr.sourceforge.net/docs/Variables.htm#Expressions
'오토핫키' 카테고리의 다른 글
[오토핫키] 메시지 박스(2) (0) | 2020.07.04 |
---|---|
[오토핫키] 메시지 박스(1) (0) | 2020.07.02 |
[오토핫키] 변수와 표현식(1) (0) | 2020.06.29 |
[오토핫키] 타이밍 제어 (0) | 2020.06.26 |
[오토핫키] 좌표계(2) (0) | 2020.06.25 |