[AutoHotkey] Loop문

1-1. Loop란..?
명령을 반복시키기 위한 것입니다.

1-2. 보통쓰는 Loop문
---------------
Loop, 횟수
{
실행명령
}
---------------
여기서 횟수는 Loop문을 몇번 반복할것인지를 정하고,
실행명령은 반복시켜줄 명령을 의미합니다.
실행명령은 여러줄이 되어도 상관없습니다.
실행명령을 딱 한줄로 할것이라면 중괄호를 생략해도 좋습니다.
예제)
---------------
Loop, 횟수
실행명령
---------------


1-3. Loop문의 내장변수
a_index가 있습니다.
a_index란 현재 실행명령이 Loop문이 몇번째돌면서 실행되는지를 나타내줍니다.
예제:
---------------
Loop 10
msgbox 현재루프번호 : %a_index%/10
---------------


1-4. Loop에서 빠져나오기 break
Loop에서 Loop가 끝까지 돌지 않았더라도 빠져나오게끔 할수 있습니다.
if문을통해 특정조건이되면 break를 걸어주면 됩니다.
---------------
a=3
Loop 10
{
if a=0
break
msgbox 현재루프번호 : %a_index%/10`n현재 a값 : %a%
a--
}
---------------
a가 0이면 루프문에서 빠져나오게 break를 걸어준것이다.


1-5 Loop에서 특정경우 뛰어넘기 continue
Loop문에서 여러실행명령이 있을경우 continue가 작성된 아래쪽부분의 명령은 실행되지않고 다음 루프횟수로 반복을 처음부터 시작합니다.
---------------
a=3
Loop 10
{
a--
if a=1
continue
msgbox 현재루프번호 : %a_index%/10`n현재 a값 : %a%
}
---------------
이렇게 하면 a=1일땐 continue아래쪽인 msgbox명령이 실행되지 않습니다.


1-6. Loop 확장기능
Loop, RootKey [, Key, IncludeSubkeys?, Recurse?] => 레지스트리내의 원하는 부분에 대해서 레지값을 찾으며 루프를 돕니다.
Loop, FilePattern [, IncludeFolders?, Recurse?] => 폴더내에서 원하는 파일패턴을 하나씩 찾으며 루프를 돕니다.
Loop, Parse, InputVar [, Delimiters, OmitChars] => 특정기준에 따라 문자열 전체를 구분하여 하나씩 찾아주며 루프를 돕니다.
Loop, Read, InputFile [, OutputFile] => 문자열 전체를 한줄씩 구분하여 찾아주며 루프를 돕니다.






2-1. Loop의 대안① while
---------------
while 값
{
실행명령
}
---------------
으로 구성되어있습니다.
값이 참인동안(0이아닌동안) 실행명령이 실행되어집니다.
while로 무한Loop를 만들수 있습니다.
예제:
---------------
while 1
{
실행명령
}
---------------
또한 특정값이 참인동안에만 실행되게끔 할수 있습니다.
---------------
a=3
while a>0
{
msgbox 현재 a값 : %a%
a--
}
---------------


2-2. Loop의 대안② goto
goto 는 특정 루틴위치로 가도록 해주는 것입니다.(루틴은 오토핫키에선, 특정명령들의 시작위치를 나타냅니다.)
루틴은 "시작위치:" 처럼 ":"으로 나타냅니다.
---------------
시작위치:
a++
msgbox msgbox 현재 a값 : %a%
goto 시작위치
---------------
이런식으로 간단히 무한Loop를 만들수 있습니다.
여기서 goto와 비슷한 명령인 gosub로 goto를 대체해도 되지만, gosub의 정확한 용도와는 다소 다르므로 생략하겠습니다.