📣 더 깊은 내용이 담긴 '프날 오토핫키 강좌 v2'의 서적판이 공개되었습니다.
가장 최신의 오토핫키를 담은 '프날 오토핫키 강좌 v2'를 책으로 만나보세요!
v2 페이지에 공개된 분량보다 더욱 깊은 내용을 처음이라도 괜찮아, 오토핫키 프로그래밍을 통해 배울 수 있습니다.
전국 온/오프라인 서점에서 만나요!
책 더 알아보기 및 구매하기
[프날 오토핫키] Switch문
오토핫키 버전이 1.1.31이 넘어가면서, Switch를 이용한 분기문 구성이 가능해졌습니다. (타언어에서의 그 Switch가 맞습니다.)
사실 지원이 늦은 감도 없지않아 있지만, 막상 생기니 좋더라고요.
Switch문
Switch문의 구조는 아래와 같습니다. (SciTE 업데이트가 되고있지 않아서 실제 편집기상에선 Switch, Case 키워드가 파란색으로 표시되지 않을 것입니다. ^^;)
Switch [SwitchValue]
{
Case CaseValue1:
statements1
Case CaseValue2:
statements2
Default:
statements3
}
- SwitchValue: 조건을 검사할 변수가 됩니다. 표현식을 사용합니다.
- CaseValue1,2: 변수과 비교할 또다른 피연산자가 됩니다.
- Dafault: Case에 걸리지 않는 부분을 모두 포함하는 부분입니다.
즉, 아래와 같이 쓰면 됩니다.
Switch 변수
{
Case "A":
;//변수 = A일때 할 행동
Case "B":
;//변수 = B일때 할 행동
Default:
;//변수 = A도 B도 아닐때 할 행동
}
if문과 동일한 것을 눈치채셨나요? 위 예시는 아래의 if문과 기능적으로 완전히 동일합니다.
if (변수 = "A")
;//변수 = A일때 할 행동
else if (변수 = "B")
;//변수 = B일때 할 행동
else
;//변수 = A도 B도 아닐때 할 행동
Switch키워드 뒤와, Case키워드 뒤에는 "표현식"이며, 이는 문자열은 "따옴표" 처리를 하고 식(변수, 상수, 연산식)은 그냥 써주시면 된다는 뜻입니다.
그리고, Switch문 내부에선 case와 case, 혹은 case와 dafult사이는 자동으로 한 단락으로 취급합니다. '조건이 참일때 할 행동'이 여러줄이라도, 중괄호로 묶어줄 필요 없이 써주시면 된다는 뜻입니다.
Switch 변수
{
Case "A":
;//행동
;//행동
;//행동
Case "B":
;//행동
;//행동
Default:
;//행동
;//행동
;//행동
}
→ 두 줄이 넘어가도 중괄호로 구분을 해주지 않습니다.
또한, "행동"이 한 줄일 경우 Case(혹은 Default)의 콜론(:)뒤에 써줄 수도 있습니다.
Switch 변수
{
Case 1: Send, 가나다
Case 2: Send, 라마바
Dafault: Send, 사아자
}
스크립트 언어인 오토핫키에서는 어색한 모습이긴 합니다. (한 줄에 하나의 명령어가 원칙이기 때문입니다.)
필요한 경우엔 이렇게도 사용할 수 있으니 알아서 써주시면 될 것 같습니다.
Switch문을 쓰면 좋은 상황
Switch문의 역할은 "식의 상태에 의한 조건 분기"입니다. 즉, 아래와 같은 상황을 대체할 수 있습니다.
if (var = 1)
a := "일"
else if (var = 2)
a := "이"
else if (var = 3)
a := "삼"
else
a := ""
같은 var변수를 비교하는데, else if와 if가 같은 단락에 있기 때문에 정확한 범위가 한 눈에 들어오지 않습니다. 만약 위 구문의 윗쪽과 아랫쪽에 다른 if문이 있다면, 서로 구분이 잘 되지 않겠지요. (그래서 저는 한 줄씩 띄워서 작성하고는 했습니다.)
이런 경우엔, 아래와 같이 Switch문을 이용할 수 있습니다.
Switch var
{
Case 1:
a := "일"
Case 2:
a := "이"
Case 3:
a := "삼"
Default:
a := ""
}
Switch문에 의해 전체가 한 단락으로 묶이면서 더욱 눈에 잘 띄게 되었습니다.
위 두 사진을 비교해보았을때, Switch문을 사용하면 두 단락으로 묶이기 때문에 범위를 파악하기에 용이하고, if문을 사용하면 총 8단락으로 묶였기 때문에 한 눈에 잘 띄지 않는 모습을 볼 수 있습니다.
사실 상황에 따라서 Switch문이 더 눈에 안띄는 경우가 있긴 합니다. (주로 '조건이 참일때 하는 행동'에 해당하는 부분이 길어지면 그렇습니다.)
상황에 맞게 if문과 Switch문을 섞어가며 사용해주시면 좋을 것 같습니다.
⚠ 이 강좌는 오토핫키 v1을 다룹니다
지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.