Repeats the statements between the For...Next block a specified number of times.
For counter=start To end [Step step] statement-block [Exit For] statement-block Next [counter]
For Each item In list statement-block [Exit For] statement-block Next [item]
counter: Loop counter initially assigned the value to the right of the equal sign (start). Only numeric variables are valid. The loop counter increases or decreases according to the variable step until end is passed.
start: Numeric variable that defines the initial value at the beginning of the loop.
end: Numeric variable that defines the final value at the end of the loop.
step: Sets the value by which to increase or decrease the loop counter. If step is not specified, the loop counter is incremented by 1. In this case, end must be greater than start. If you want to decrease counter, end must be less than start, and step must be assigned a negative value.
As the counter variable is decreased, LibreOffice Basic checks if the end value has been reached. As soon as the counter passes the end value, the loop automatically terminates.
For...Next 陳述式中還可以嵌套 For...Next 陳述式。如果 Next 陳述式後沒有指定變數，則 Next 自動參照最近的 For 陳述式。
如果指定遞增量為 0，For 和 Next 之間的陳述式會一直重複執行。
When counting down the counter variable, LibreOffice Basic checks for overflow or underflow. The loop ends when counter exceeds end (positive Step value) or is less than end (negative Step value).
Exit For 陳述式可用於無條件地結束迴圈。此陳述式必須位於 For...Next 迴圈內。If...Then 陳述式用於測試結束條件，如下所示：
For... statement-block If condition = True Then Exit For statement-block Next
In nested For...Next loops, if you exit a loop unconditionally with Exit For, only one loop is exited.
The following example uses two nested loops to sort a string array with 10 elements ( sEntry() ), that is filled with various contents:
Sub ExampleSort Dim sEntry(9) As String Dim iCount As Integer, iCount2 As Integer Dim sTemp As String sEntry = Array("Jerry","Patty","Kurt","Thomas","Michael",_ "David","Cathy","Susie","Edward","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
This explores the content of an array to display each item it contains.
Sub list_iteration cutlery = Array("fork", "knife", "spoon") For Each item in cutlery Print item Next ' item End Sub