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