프날 오토핫키 강좌  v2

⚠ 이 강좌는 오토핫키 v2를 다룹니다

지금 보시는 강좌는 널리 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
이전 오토핫키 버전과는 많은 부분에서 호환이 되지 않으니, 만약 현시점에서 대중적인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시길 바랍니다.

32. 제어문 이모저모


머리도 식힐 겸, 조건문과 반복문에 관련된 여러 재미있는 이야기를 준비했습니다.

제어문

보셨다싶이 반복문과 조건문은 코드의 흐름을 바꿉니다. 곧대로 내려가던 코드 흐름이 거꾸로 올라가 반복되거나, 특정 부분은 건너뛰기도 하죠.

즉, 코드는 '순차 진행' 뿐만 아니라 '반복 실행'과 '조건 분기'도 합니다.

이렇게 기존 순차 진행되던 코드의 흐름을 변경하는 구문을 제어문(Control flow statement)이라고 합니다. 한마디로, 반복문과 조건문은 제어문이라고 할 수 있습니다.

블록의 생략

제어문에서, 블록 안의 내용이 한 줄일 경우 그 블록의 중괄호 표시는 생략할 수 있습니다.

1if (조건)
2{
3 ;조건이 참일 때 할 내용 (한 줄)
4}
5else if (조건)
6{
7 ;조건이 참일 때 할 내용 (한 줄)
8}
9else
10{
11 ;조건이 참일 때 할 내용 (한 줄)
12}

따라서 위 코드는 아래처럼 쓸 수 있습니다.

1if (조건)
2 ;조건이 참일 때 할 내용 (한 줄)
3else if (조건)
4 ;조건이 참일 때 할 내용 (한 줄)
5else
6 ;조건이 참일 때 할 내용 (한 줄)

훨씬 깔끔하죠? 반복문도 마찬가지로 그 반복 내용이 한 줄일 경우 중괄호를 생략할 수 있습니다.

1Loop 횟수
2 ;반복할 내용 (한 줄)

앞으로는 강좌에서 제어문 블록 안의 내용이 한 줄일 경우 블록을 생략하도록 하겠습니다.

else if의 유래

else if는 아래와 같은 구문이 줄어들은 것입니다.

1if (조건)
2{
3 ;조건이 참일 때 할 내용
4}
5else
6{
7 if (조건)
8 {
9 ;조건이 참일 때 할 내용
10 }
11}

5번 줄의 else와 7번 줄의 if가 보이시나요? 이 부분이 축약되어 else if로 쓰던 것이 굳어진 것입니다.

실제로 위 코드는 아래와 같이 else if를 사용한 경우와 기능상으로 완전히 동일합니다.

1if (조건)
2{
3 ;조건이 참일 때 할 내용
4}
5else if (조건)
6{
7 ;조건이 참일 때 할 내용
8}

블록의 단계가 과도하게 깊숙하면 좋지 않으니, 아래와 같이 else if를 사용해야합니다.

표기 관례

함수와 다르게, Loop를 제외한 제어문은 관례적으로 소문자로 시작하여 적습니다.

BreakContinueIfElse ifElseSwitchCaseDefault가 아니라, breakcontinueifelse ifelseswitchcasedefault로 씁니다.

물론 오토핫키가 대소문자를 구문하진 않지만, 관습을 따르는 것이 혼동을 줄이겠죠?

이번 강은 제어문에 관한 여러 이야기를 해보았습니다. 다음 강에서는 제어문을 이용한 이론 및 프로그래밍 문제를 풀어보도록 하겠습니다.