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에서도 조금씩 보충 설명을 하도록 하겠습니다.

     

     

     

     

     

    Posted by 옹봉이