18 - [오토핫키] 조건문 If

    조건문 If는 정말 매우매우!! 중요한 명령어입니다. If는 만약 ~하다면 이라는 뜻으로 4 - [오토핫키] IfMsgBox 에서도 간략히 다뤘었습니다. IfEqual / IfGreater / IfLess 등 If에서 파생되는 명령어가 많지만 If하나만 알아도 대부분 해결이 가능하기 때문에 If에 대해서만 다루도록 하겠습니다.

     

    문법

    If Var 연산자 Value

    If (expression)

     

    설명

    Var

    변수 이름

    연산자

    연산을 하기 위한 기호 16 - [오토핫키] 표현식과 연산자 참조

    Value

    문자열, 숫자 등 Var을 비어있는 문자열과 비교하려면 생략 가능

    expression

    표현식, 16 - [오토핫키] 표현식과 연산자 참조

     

     

    예제

    예제1)

    F1::

    If A=8

      MsgBox, 첫번째 If입니다.

    If A=B

      MsgBox, 두번째 If입니다.

    Return

     

    F2::A=8

    F3::B=8

    예제2)

    F1::

    Loop

    {

      B+=1

      If (B<5)

      {

        A-=1

      }

      Else

      {

        A+=2

      }

      If (A>B)

      {

        Break

      }

      MsgBox, A는 (%A%) B는 (%B%)

    }

    return

     

     

    16 - [오토핫키] 표현식과 연산자 에서 "( )괄호 안에서는 %로 둘러싸지 않는다." 라고 설명했었는데 If는 ( ) 괄호를 열어 표현식을 작성 할 수 있습니다.

    예제1은 If일반식으로 작성 되어있습니다. "F1"을 누르면 변수 A가 8이 아니며 A가 B와도 같지 않기 때문에 아무런 동작을 하지 않습니다. 그럼 "F2"를 눌러 8을 변수 A에 선언한 후 다시 "F1"을 눌러봅시다. 이제는 A=8이 되었기 때문에 조건에 만족하여 첫번째 메시지 박스가 동작을 했어요. 그럼 "F3"을 눌러 8을 B에 선언하면 "F1"의 두번째 메시지 박스도 실행 되겠죠? 한번 해봅시다!!

    잘 안되죠? 이해하시겠나요? 문법을 보면 Var은 변수 이름을 요구하기 때문에 %를 씌우지 않아도 변수로 인식하지만 Value는 값을 요구하기 때문에 A=B라는 조건은 말 그대로 A=B라는 변수가 선언 되어야 한다는 뜻이죠.

    예제2를 실행하지 않고 이해할 수 있다면 이미 If를 마스터 했다고 볼 수 있습니다. 이번에는 표현식을 썼어요. 무한대로 돌아가는 Loop입니다. Loop가 한번 반복 할때마다 변수 B는 무조껀 1씩 증가합니다. If (B<5) 는 B가 5보다 작을때 변수 A를 -1씩 가감합니다.

    Else 라는 명령어가 보이나요? Else는 단독으로 쓰이지는 않고 위에 있는 If의 조건이 끝나는 부분에 써야합니다. Else는 "조건을 만족하지 않는 모든 경우"를 의미하기 때문에 예제에서는 B가 5보다 작지 않을 때 변수 A를 2씩 증가시키겠죠? 이렇게 증가하다가 If (A>B) 즉, A가 B보다 커졌을때 "Break" 명령어에 의해서 Loop를 멈춥니다. 여기에서는 ( ) 괄호를 써서 표현식이 되었기 때문에 A, B모두 %를 씌우지 않아요.

     

     

     

     

     

     

    Posted by 옹봉이