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