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