Module
Contents
Index 🔎︎

# For...Next Statement

依指定的次數重複執行 For...Next 區塊中的陳述式。

## 語法：

    For counter=start To end[Step step]

    陳述式區塊

    [Exit For]

    陳述式區塊

    Next[counter]

## 變數：

Counter：初始值由等號右邊的值 (start) 所指定的迴圈計數器。在此處僅數值型變數有效。迴圈計數器依變數 Step 的不同而有所增減，直到達到 End 的值。

Start：數值型變數，用於定義迴圈開始時的初始值。

End：數值型變數，用於定義迴圈結束時的最終值。

Step：設定迴圈計數器增減的步長值。如果不指定 Step，則迴圈計數器以 1 遞增。在此種情況下，End 必須大於 Start。如果要使計數器遞減，則 End 必須小於 Start，並且必須將 Step 指定為負值。

For...Next 迴圈依參數所指定的次數重複執行迴圈中所有的陳述式。

由於計數器變數是遞減的，LibreOffice Basic 會檢查是否到達了最終值。一旦計數器執行到最終值，迴圈就自動結束。

For...Next 陳述式中還可以嵌套 For...Next 陳述式。如果 Next 陳述式後沒有指定變數，則 Next 自動參照最近的 For 陳述式。

如果指定遞增量為 0，For 和 Next 之間的陳述式會一直重複執行。

當計數器變數的值下降時，LibreOffice Basic 會檢查是否溢位或下溢。當計數器大於 End (Step 為正值) 或小於 End (Step 為負值) 時，迴圈結束。

Exit For 陳述式可用於無條件地結束迴圈。此陳述式必須位於 For...Next 迴圈內。If...Then 陳述式用於測試結束條件，如下所示：

For...

陳述式

If condition = True Then Exit For

陳述式

Next

備註：在嵌套的 For...Next 迴圈中，如果使用 Exit For 無條件地結束某個迴圈，則僅結束其所在的那個迴圈。

## 示例：

以下示例使用了兩個嵌套的迴圈，以排序含有 10 個元素的字串陣列 (sEntry())，這 10 個元素填入有不同的內容：

    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