Module
Contents
Index 🔎︎

# For...Next Statement

For...Next 블록 사이의 문을 지정한 횟수만큼 반복합니다.

## 구문:

    For counter=start To end [Step step]

    문 블록

    [Exit For]

    문 블록

    Next [counter]

## 변수:

Counter: 등호의 오른쪽에 있는 값(start)에 초기에 할당되는 루프 카운터입니다. numeric 변수만 유효합니다. 루프 카운터는 End가 전달될 때까지 변수 Step에 따라 증가하거나 감소합니다.

Start: 루프 시작 부분의 초기 값을 지정하는 numeric 변수입니다.

End: 루프 끝 부분의 최종 값을 지정하는 numeric 변수입니다.

Step: 루프 카운터는 이 변수에 설정된 값만큼 증가 또는 감소합니다. Step을 지정하지 않으면 루프 카운터는 1씩 증가합니다. 이 경우 End는 Start보다 커야 합니다. Counter를 줄이려는 경우 End가 Start보다 작아야 하며 Step에 음수를 할당해야 합니다.

For...Next 루프는 매개 변수에 지정된 횟수만큼 루프의 모든 문을 반복합니다.

카운터 변수가 감소할 때 LibreOffice Basic은 끝 값에 도달하는지 검사합니다. 카운터가 끝 값을 전달하면 루프도 자동으로 종료됩니다.

For...Next 문을 중첩할 수 있습니다. Next 뒤에 변수를 지정하지 않을 경우 Next는 가장 최근의 For 문을 자동으로 참결합니다.

증분을 0으로 지정하면 For와 Next 사이의 문이 계속 반복됩니다.

카운터 변수가 줄어들 때 LibreOffice Basic은 오버플로우 또는 언더플로우를 검사합니다. Counter가 End를 초과하거나(양의 Step 값) End보다 작으면(음의 Step 값) 루프는 종료됩니다.

루프를 무조건 종료하려면 Exit For 문을 사용합니다. 이 문은 For...Next 루프 내에 있어야 합니다. 다음과 같이 If...Then 문을 사용하여 종료 조건을 테스트합니다.

For...

문

If condition = True Then Exit For

문

Next

참고: 중첩된 For...Next 루프에서 Exit For로 루프를 무조건 종료할 경우 하나의 루프만 종료합니다.

## 예

다음은 두 개의 중첩된 루프를 사용하여 다양한 내용으로 채워지는 10개의 요소가 포함된 문자열 배열( sEntry() )을 정렬하는 예입니다.

    Sub ExampleSort

    Dim sEntry(9) As String

    Dim iCount As Integer

    Dim iCount2 As Integer

    Dim sTemp As String

        sEntry(0) = "Jerry"

        sEntry(1) = "Patty"

        sEntry(2) = "Kurt"

        sEntry(3) = "Thomas"

        sEntry(4) = "Michael"

        sEntry(5) = "David"

        sEntry(6) = "Cathy"

        sEntry(7) = "Susie"

        sEntry(8) = "Edward"

        sEntry(9) = "Christine"

        For iCount = 0 To 9

            For iCount2 = iCount + 1 To 9

                If sEntry(iCount) > sEntry(iCount2) Then

                    sTemp = sEntry(iCount)

                    sEntry(iCount) = sEntry(iCount2)

                    sEntry(iCount2) = sTemp

                End If

            Next iCount2

        Next iCount

        For iCount = 0 To 9

            Print sEntry(iCount)

        Next iCount

    End Sub