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