18 - [오토핫키] 조건문 If
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모두 %를 씌우지 않아요. |