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,ForNext 之間的陳述式會一直重複執行。

當計數器變數的值下降時,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