반복문(Loop)
반복문이란?
반복문은 특정한 작업을 반복하고 싶을 때 유용합니다. 예를 들어 모든 플레이어에게 메시지를 보내고 싶다거나, 비슷한 작업을 여러번 하고 싶을 때 유용하죠.
대표적인 반복문으론 for()
, foreach()
, while()
문이 있습니다.
for()
구문
for()
문은 가장 일반적인 반복문의 형식 중 하나입니다.
작동 방식은 변수 선언, 변수 조건 확인, 구문 실행, 변수 연산으로 이루어집니다.
쉽게 말해서, 어떠한 변수를 만들고 값을 지정한 뒤, 그 값이 미리 정한 조건과 맞으면 구문을 실행한 뒤 변수의 값을 바꿉니다. 그리고 그 바뀐 값이 조건에 맞는다면 구문 실행 후 변수의 값을 바꾸는 과정을 하고, 이를 변수의 값이 조건과 맞지 않을 때까지 반복하는 것입니다.
간단한 예제와 함께 위에서 말한 for()
구문의 동작 방식을 알아보도록 하겠습니다.
예제 1.
/fortest = >>>
for(@i=1, @i<=10, @i++) {
msg(@i'번째 실행')
}
<<<
결과: "1 번째 실행", "2 번째 실행".... "10 번째 실행" 이라는 메시지가 출력됨.
위의 예제에서는 @i
라는 변수를 선언하고 변수의 초기 값을 1
로 지정하였습니다.
그리고 조건은 @i 변수가 10보다 작거나 같아야 한다(@i <= 10
)고 지정하였고, 변수 연산은 @i
변수의 값에 1씩 더한다(@i++
) 으로 지정하였습니다.
마지막으로 실행할 구문은 msg(@i'번째 실행')
이 됩니다.
위의 for()
구문의 기본 구조에 따르면, 먼저 구문을 시작하면 1
이라는 값을 가진 @i
변수를 생성한 후, @i
변수가 10
이하인지 확인합니다(@i<=10
). 그리고 이 조건의 결과가 참
이기 때문에 구문(msg(@i'번째 실행')
) 을 실행하고 변수 연산(@i++
) 을 실행합니다.
변수 확인부터 변수 연산까지가 for()
구문의 한 반복이며, 변수 연산이 완료되면 다시 변수를 확인하고, 그 결과가 참이라면 해당 구문과 연산을 한번 더 실행하며, 거짓이라면 구문을 즉시 종료하게 됩니다.
while()
구문
while()
구문은 for()
구문에서 조건 확인
부분만 존재하는 구문이라고 생각하시면 됩니다.
while()
문의 인수는 조건, 구문 두가지로 구성되어 있으며, 구문이 시작되면 조건
부분을 확인하고 참이면 구문을 실행 후 조건 확인, 거짓이면 구문을 끝냅니다.
예제 1.
/whiletest = >>>
@testvalue = 0
while(@testvalue < 10) {
msg('while 테스트')
@testvalue++
}
msg(@testvalue)
<<<
결과: "while 테스트" 라는 구문이 10번 반복되고, "10" 이라는 메시지가 출력된다.
foreach()
구문
주의: 해당 문단은 배열 문서를 미리 읽고 이해할 필요가 있습니다.
foreach()
구문은 for()
구문에서 배열 처리를 더욱 간결하게 하기 위해 만들어진 구문입니다.
foreach()
구문은 배열의 변수, 배열의 값이 들어갈 변수, 배열의 키가 들어갈 변수(필요할 경우) 와 실행할 구문을 요구하며,
배열 속의 각 값마다 반복하며, 각 값을 변수에 넣고 지정한 구문을 실행하는 방식입니다.
이 구문 또한 예제를 통해 알아보도록 하겠습니다.
예제 1.
/foreachtest = >>>
@array = array('a', 'b', 'c', 'd')
foreach(@array, @value) {
msg('배열의 값:'@value)
}
<<<
결과: "배열의 값: a", "배열의 값: b", "배열의 값: c", "배열의 값: d" 라는 메시지가 차례로 출력된다.
위의 예제에서 보듯이, 배열의 크기만큼 구문을 반복하며, 반복할 때마다 @value
라는 변수에 배열 내부의 각각 다른 값이 들어가 있는 것을 볼 수 있습니다.
예제 2.
/foreachtest = >>>
@array = array('A': 'a', 'B': 'b', 'C': 'c', 'D': 'd')
foreach(@array, @key, @value) {
msg('배열의 키:'@key.', 배열의 값:'@value)
}
<<<
결과: "배열의 키: A, 배열의 값: a", "배열의 키: B, 배열의 값: b", "배열의 키: C, 배열의 값: c", "배열의 키: D, 배열의 값: d" 라는 메시지가 차례로 출력된다.
foreach()
구문에서 인수가 세개(배열, 키, 값) 일 경우 두번째로 선언된 변수에 키 이름이 들어가고, 세번째로 선언된 변수에 값이 들어가서 구문이 반복된다는 것을 볼 수 있습니다.