프날 오토핫키 강좌  v2

⚠ 이 강좌는 오토핫키 v2를 다룹니다

지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만, 새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.

14. 연산자의 종류 (상)


오토핫키에 쓰이는 여러 연산자를 배워보겠습니다. 모든 연산자를 배우기엔 아직 이해가 어려운 것도 있으니, 기초 강좌인 여기서는 주요 연산자만 다루도록 하겠습니다.

대입 연산자

대입 연산자는 변수에 값을 대입해줄 때 사용하는 연산자입니다. 대입 연산자의 왼쪽엔 변수, 오른쪽엔 대입해줄 값을 사용합니다. 아래와 같이 두 종류의 대입 연산자가 있습니다.

대입 연산자설명
:=변수에 값을 대입
.=변수에 값을 이어서 대입

먼저 :=는 대부분 경우에서 사용하는 일반적인 대입 연산자이며, 오른쪽의 값을 왼쪽의 변수에 대입하는 역할을 합니다.

1var := 10
1var := "텍스트"
변수에 값 대입 (출력값이 없으므로 예제 파일 미제공)

위와 같이 사용하면, var변수에 각각 10텍스트를 담게 되죠. 문자열에는 따옴표 처리를 한 점도 눈여겨볼 만합니다.

그리고 .= 연산자는 변수에 값을 이어서 대입하는 역할을 합니다. 기존에 변수가 갖고있는 값에, 새로 대입한 값이 이어지는 것이죠. 따라서 아래의 예제 3에선 꼼짝마! 움직이면 쏜다!라는 문장이 var변수에 담기고, 이것이 출력될 것입니다.

1var := "꼼짝마! "
2var .= "움직이면 쏜다!"
3MsgBox(var)
변수에 값 대입 후 출력

만약에 2번 줄에서 .= 연산자가 아닌 := 연산자를 사용했다면 var변수는 움직이면 쏜다!만 담겨있었겠죠. .= 연산자를 사용했기 때문에, 기존에 변수가 가지고 있던 값에 새 값이 이어서 대입(=연결)된 것입니다.

Tip: 변수와 변수, 변수와 문자열의 연결도 가능합니다


var := var1 var2
var := "string" var
12강에서 배웠던 것처럼 변수와 문자열, 변수와 변수를 연결해서 사용할 수도 있습니다. 변수와 문자열을 띄어쓰기로 구분한다고 했죠.

위의 예시에서 var1에 문자열 A, var2에 문자열 B가 담겨있다고 가정하면 var 변수엔 최종적으로 stringAB라는 문자열이 담기겠네요.

산술 연산자

산술 연산자는 여러분이 수학(산수)에서 사용하던 사칙연산과 동일합니다.

산술 연산자설명
+더하기
-빼기
*곱하기
/나누기
//나누기 (몫만 구하기)

쉽죠? MsgBox를 이용하여 산술 연산의 결과를 출력해봅시다.

1MsgBox("1 + 2 = " 1 + 2)
산술 연산의 결과 출력

위의 코드 조각에서, "1 + 2 = " 부분은 문자열이므로 문자 그대로 출력될 것입니다. 그 뒤의 1 + 2 부분은 따옴표로 감싸주지 않았으므로, 연산이 되어 3이 되겠죠. 따라서 알림상자에는 1 + 2 = 3이 출력됩니다.

당연히 산술 연산의 결과를 변수에 대입할 수도 있습니다.

1calcResult := 3 * 5
2MsgBox("결과는 " calcResult "입니다.")
산술 연산의 변수 대입 후 결과 출력

복합 대입 연산자

복합 대입 연산자는 대입 연산자와 산술 연산자를 합쳐둔 것입니다. 주어진 변수에 특정 값을 산술연산해주는 역할을 합니다.

산술 연산자설명
+=더해서 대입
-=빼기
*=곱해서 대입
/=나눠서 대입
//=나워서 대입 (몫만 구하기)

말이 어려운데, 예제를 보면 이해가 쉽습니다.

1num := 5
2num += 3
3MsgBox(num)
복합 대입 연산자 +=의 사용

위와 같은 상황에서, 2번 줄을 주목해주세요. 복합 대입 연산자 +=가 사용되었습니다. num 변수에 3이 더해져서, num 변수는 최종적으로 8의 값을 갖습니다.

즉, var += nvar := var + n과 완전히 동일합니다! 변수에 특정 값을 연산해주는 역할을 해서 재대입 해주는 것이지요.

Tip: 연산의 대상으로 변수도 사용 가능합니다.

아래와 같이, 변수가 가진 값을 대입하거나 산술 연산할 수도 있습니다.

var := num1 + num2 - 10
위의 예시에선 num1 + num2 - 10의 결과값이 var변수에 담길 것입니다.

너무 많은 내용을 한 번에 했네요. 나머지 연산자는 하편으로 쪼개어서 진행하겠습니다.

질문하러 가기