[VB] 같은 작업을 계속 반복해주는 Do .. Loop 문 사용 방법 총정리

VB 또는 VBA 에서 같은 작업을 계속해서 반복 수행할 수 있도록 해주는 Do .. Loop 문에 대해서 알아 봅시다. 이 함수는 조금은 주의해서 사용할 필요가 있음을 염두에 두세요.

Do .. Loop

Do .. Loop 문의 기본 사용 방법은 아주 심플합니다.

Do
    '수행할 작업
Loop

Do 와 Loop 로 구조를 만들고 그 안에 수행할 작업을 넣는 것입니다. 조금더 실질적으로는 아래와 같습니다.

Do
    Msgbox "Do!"
Loop

간단하죠?

Do .. Loop 문 탈출하기

그런데 Do .. Loop 문이 같은 작업을 계속해서 반복 하도록 한다고 했잖아요. 그래서 위 코드만 넣고 실행을 하면 아주 큰 낭패를 보게 될 겁니다. Loop 에서 빠져 나올 방법이 없어 계속 무한반복해서 실행 되기 때문이죠.

그래서 필요한게 While 문이나 Until 문입니다.

While

Do .. Loop 문에서 While 의 역할은 조건에 부합하는 동안만 작업을 반복 하라는 의미입니다.

Dim i as Double
i = 0

Do While i < 10
    i = i + 1
Loop

위 코드를 보면 반복 작업이 실행 될 때 마다 i 가 1 씩 증가 하겠죠? Do 옆의 While 조건을 보면 i 가 10 보다 작은 동안만 작업을 반복하라고 조건을 걸어 두었습니다.

이 상황에서는 i 가 9 일때 마지막 작업을 실시하면서 결국 i 는 10이 되고 Loop 문을 빠져 나오게 됩니다.

While 은 Do 문에 작성해도 되지만 Loop 문에 붙여도 됩니다. 아래 처럼요.

Dim i as Double
i = 0

Do
    i = i + 1
Loop While i < 10

Until

While 의 대체재로 Until 을 사용할 수 있습니다. Until 은 어떤 조건을 만족 할 때까지 실행 하라는 의미입니다.

Dim i as Double
i = 0

Do Until i = 10
    i = i + 1
Loop

작업이 반복됨에 따라 i 는 1 씩 증가 할 것이고, 그러다가 i 가 10 이 되면 더이상 작업을 수행 하지 않고 Loop 문을 빠져 나옵니다.

While 과 마찬가지로 Until 역시 Loop 문 옆에 붙을 수 있습니다.

Dim i as Double
i = 0

Do
    i = i + 1
Loop Until i = 10

Loop 에서 빠져 나오는 방법

While 이나 Until 을 사용하여 적절한 시기에 Loop 에서 탈출해야 하지만, 간혹 실수로 무한 루프에 빠지는 경우가 있습니다.

그럴땐 당황하지 마시고, Ctrl + Pause Break 버튼을 눌러 보세요. 코드 실행이 중단 되었다는 메시지와 함께 프로시져가 중단 됩니다.

참고자료
  1. Using Do…Loop Statements, MSDN