16 - [오토핫키] 표현식과 연산자
16 - [오토핫키] 표현식과 연산자
연산에 대해 알고 계신가요? 쉽게 말해 더하기, 빼기, 곱하기, 나누기 등을 사칙연산이라고 학교에서 배우셨죠? 오토핫키에서도 동일하게 사용됩니다. 조금 디테일하게 들어가면 산술연산, 대입연산, 비교연산 등 여러가지가 있어요. 표현식은 변수, 기호, 숫자 등의 연산을 수행하기 위해 사용됩니다. 13 - [오토핫키] MouseClick 에서 살짝 언급했듯이 표현식안에서 변수는 %로 둘러싸지 않으며 문자는 " 겹따옴표로 둘러싸야 합니다. 표현식이 너무 복잡하다고 생각되면 간단히 "( )괄호 안의 변수는 %로 둘러싸지 않는다." 라고 생각하면 조금 쉬워집니다. 표현식으로 변수를 열람 하고자 한다면 % (% 스페이스) %와 한칸 띄워주면 표현식 열람이 시작됩니다. 이때부터 표현식 문법을 따라서 문자는 " 겹따옴표로 둘러 싸며 변수는 %로 둘러싸지 않게 됩니다. 예) MsgBox % "도레미" 변수 "솔라시도" ;변수를 지정해주지 않았으므로 결과는 '도레미솔라시도'가 출력됨 |
|
|
연산자 |
연산의 예 |
종류 |
의미 |
+ |
4 + 3 = 7 |
산술 연산자 |
덧셈 |
- |
9 - 2 = 7 |
산술 연산자 |
뺄셈 |
* |
3 * 7 = 21 |
산술 연산자 |
곱셈 |
/ |
8 / 2 = 4 |
산술 연산자 |
나눗셈 |
** |
3 ** 3 = 27 |
산술 연산자 |
거듭제곱 |
// |
7 // 3 = 2 |
산술 연산자 |
몫 |
:= |
A := expression |
대입 연산자 |
표현식 대입 |
.= |
A .= expression |
대입 연산자 |
표현식 누적 대입 |
= |
A = B |
비교 연산자 |
같다 |
<> |
A <> B |
비교 연산자 |
다르다 |
> |
A > B |
비교 연산자 |
크다 |
< |
A < B |
비교 연산자 |
작다 |
>= |
A >= B |
비교 연산자 |
크거나 같다 |
=< |
A =< B |
비교 연산자 |
작거나 같다 |
++ |
A++ |
증감 연산자 |
1씩 증가 |
-- |
A-- |
증감 연산자 |
1씩 감소 |
+= |
A += 1 (A := A + 1 과 같음) |
산술 대입 연산자 |
더해서 대입 |
-= |
A -= 1 (A := A - 1 과 같음) |
산술 대입 연산자 |
빼서 대입 |
*= |
A *= 2 (A := A * 1 과 같음) |
산술 대입 연산자 |
곱해서 대입 |
/= |
A /= 2 (A := A / 1 과 같음) |
산술 대입 연산자 |
나눠서 대입 |
&& |
A = B && B = C |
논리 연산자 |
and |
|| |
A = B || B = C |
논리 연산자 |
or |
! |
A != B |
논리 연산자 |
부정 |
예제
예제1)A=4+5 B:=4+5 C.=1+2 C.=3-2 D:=B+C E:=A+B+C
F1::MsgBox, %A% F2::MsgBox, %B% F3::MsgBox, %C% F4::MsgBox, %D% F5::MsgBox, %E% |
예제2)A=비밀의 화원 B:=비밀의 화원 C.=비밀의 C.=화원 D:="비밀의 화원" E.="비밀의 " E.="화원"
F1::MsgBox, %A% F2::MsgBox, %B% F3::MsgBox, %C% F4::MsgBox, %D% F5::MsgBox, %E% |
예제1은 A~E까지의 변수에 연산들이 담겨 있습니다. 메시지 박스의 결과값을 보기 전에 우선 어떤 결과가 나올지 머리속으로 생각 해본후 결과를 보세요. "F1"을 누를때 결과를 '9'라고 생각했나요? 비교 연산자 = (등호)는 '같다'는 뜻입니다. A는 4+5와 같으니 변수 A의 진짜값을 벗겨냈을때는 4+5가 나오는것이죠. 그러면 "F2"는 어떨까요? 맨위 표에서 := 는 표현식을 담는다고 했습니다. 표현식은 변수나 문자, 숫자 등의 연산을 수행한다고 했고요. 그렇다면 4+5라는 연산을 수행하여 변수 A에는 9라는 연산 결과가 담긴것 입니다. 자주 사용하지는 않지만 "F3"의 결과는 표현식을 누적하여 대입해주는 .= 가 사용되어 변수 C에는 3이라는 숫자와 1이라는 숫자가 누적되어 붙어서 31이라는 결과가 나왔어요. 만약 그냥 := 가 사용되었다면 처음에 들어간 3은 초기화 되고 나중에 들어간 1만 출력되는 결과가 나오는것과는 차이가 있습니다. "F4"를 봅시다. 분명히 변수 D에는 := 이라는 표현식 등호가 사용되었기 때문에 변수 B와 변수 C는 %로 감싸지 않아도 변수로 인식하고 9와 31이 연산되어 40이 나왔습니다. 자 그럼 "F5"는 어떻게 나왔나요? 아무것도 출력되지 않았다면 그 이유는 뭘까요? 변수 A를 보면 4+5가 담겨있죠. 사람이 보기에는 숫자지만 표현식을 사용하지 않았기 때문에 컴퓨터는 문자로 인식을 해서 E:=A(문자)+B(숫자)+C(숫자) 가 되었고, 숫자와 문자는 연산이 불가능 하기 때문에 결과값이 없는것 입니다. 이번에는 문자가 들어있는 예제2를 봅시다. "F1"의 결과는 당연히 '비밀의 화원'이 그대로 출력되어 나옵니다. 그럼 "F2"는? 아무것도 출력되지 않았죠? 스크롤을 올려 맨 위를 다시 봅시다. 표현식에서 문자는 " 겹따옴표로 둘러싸야 한다고 알려드렸습니다. 그렇기 때문에 아무런 결과값이 없는것이죠. "F3"은 표현식을 누적 대입해주는 것이기 때문에 마찬가지로 결과값이 없어요. 자 그럼 문자에 " 겹따옴표를 씌운 "F4"와 "F5"를 봅시다. 생각한 대로 출력이 되었죠. 이제 표현식에 대해 조금 감이 잡히나요? 아직 어렵다면 다음 강좌인 Loop와 If에서도 조금씩 보충 설명을 하도록 하겠습니다. |