Collabora Office 23.05 帮助
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.
「For...Next」循环根据参数指定的次数重复执行循环中所有的语句。
As the counter variable is decreased, Collabora Office Basic checks if the end value has been reached. As soon as the counter passes the end value, the loop automatically terminates.
还可以嵌套「For...Next」语句。如果未在「Next」语句后指定变量,则「Next」将自动引用最近使用的「For」语句。
增量指定为 0 时,会一直重复执行「For」和「Next」之间的语句。
When counting down the counter variable, Collabora Office 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