For...Next 语句
按照指定的次数重复执行 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 语句。如果未在 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