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 时,会一直重复执行 ForNext 之间的语句。

当计数器变量的值下降时,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