프날 오토핫키 강좌
누르면 강좌 리스트가 나와요
프날 오토핫키 강좌

⚠ 이 강좌는 오토핫키 v1을 다룹니다

지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.

[프날 오토핫키] 25. Loop

오토핫키를 포함해서, 대부분의 프로그래밍 언어를 배울 때 가장 중요시되는 파트가 세 가지가 있습니다.

  1. 변수(연산자)
  2. 반복문
  3. 조건문

이 세 내용은 한 번만 보지 말고 계속 보면서 "떡 주무르듯" 다룰 수 있어야합니다. 이번 강에서는 이 셋 중 하나인 "반복문"에 대해 배워보겠습니다.


 반복을 시켜주는 Loop 

반복문은 특정 부분을 "구간 반복"해주는 구문이고, 오토핫키에선 이 반복문을 Loop라는 명령어로 구현합니다. 매개변수는 아래와 같습니다.

Loop [, Count]

Count 파라미터에는 반복 횟수가 들어가주면 됩니다.

 

Loop는 반복문이라고 했습니다. 그렇다면 반복의 시작과 끝을 정해주어야합니다. 오토핫키에서 반복의 시작과 끝은 { 여는 중괄호와 닫는 중괄호 } 를 사용합니다.

 

아래처럼, 반복의 시작 부분에 반복문을 써준 후 중괄호로 범위를 지정해주시면 됩니다.

Loop, 5
{
    MsgBox, 이 메시지 박스는 총 다섯 번 나옵니다.
}

 

아래처럼 반복문 안에 반복문을 겹쳐 쓸 수도 있습니다. 안쪽 반복문이 5회 반복한 후 탈출해도, 다시 바깥쪽 반복문이 반복되기 때문에 안쪽으로 다시 들어갈 것입니다.

 

결과적으로 MsgBox는 총 15번 열릴 것입니다.

a := 0
b := 0
Loop, 3
{
    a++
    Loop, 5
    {
        b++
        MsgBox, 바깥쪽 반복문은 %a%회`, 안쪽 반복문은 %b%회 반복했습니다.
    }
    b := 0
}
ExitApp

25강_1.ahk
0.00MB

이러한 2중 구조는 앞으로도 자주 쓰시게 되니 반드시 연습하셔야합니다. 다소 어려울지라도 위 예제는 반드시 이해해주세요. 2중 반복문 구조 중 제일 쉬운 형태입니다.


어려울 수도 있지만, 구구단 5단부터 7단까지를 출력해보도록 할까요? 동영상처럼 말입니다.

 

25강_2.ahk
0.00MB

스크립트 파일은 제공하나, 이왕이면 30분정도는 고민해보신 후 열어보세요. 2중 반복문만큼 잘 쓰이는 구문도 없기 때문에, 최대한 실력을 키워야합니다.

 


 내장 변수 A_index를 소개합니다 

변수에 값을 대입해주지 않아도 쓸 수 있는 변수가 있습니다. 기본적으로 내장되어있다는 뜻에서 '내장 변수'라고 부르며, 변수명 앞엔 A라는 접두어가 붙습니다.

 

반복문 내에서 쓸 수있는 내장 변수는 A_index가 있습니다. 이 변수 안엔 반복문의 반복 횟수가 담겨 있습니다.

 

아래 예제를 보시면 이해가 쉽습니다.

Loop, 5
{
    MsgBox, %A_index%회 반복했습니다.
}
ExitApp

25강_3.ahk
0.00MB

 


 반복문을 탈출해주는 Break 

Break라는 명령어가 있습니다. 반복문을 진행하다 Break를 만나면 해당 반복문을 탈출시켜주는 명령어입니다.

 

매개변수는 별도로 있으나, 설명 드리지 않겠습니다. 다만 Break 뒤에 숫자가 붙는다면 그 숫자 만큼의 반복문을 탈출해준다고 생각하시면 됩니다. 아무것도 쓰지 않으면 가장 가까운 한 개의 반복문만 탈출합니다.

Loop
{
    ..//스크립트
    Break
}

→ Break를 만나면 반복문을 탈출합니다.

 

Loop
{
    Loop
    {
        ..//스크립트
        Break, 2
    }
}

→ 두 개의 반복문이 탈출됩니다.

 

Break는 27강부터 배울 조건문과 결합되어야 유용하게 쓸 수 있습니다.

지금은 그냥 이런게 있구나 하고 넘어가주세요.

 


Loop는 사실 굉장히 많은 용법이 있습니다. 다만 너무 심화적인 과정이라서 기초 강좌에는 어울리지 않아 제외했습니다.

특히나 중요하게 보셔야 할 부분은 2중 반복문 구조입니다. 스크립트에 줄 번호를 매겨서, 몇 번 줄을 이동중인지 생각해보시면 쉽게 이해가 가능할겁니다.

 


| 25. Loop |