Module
Contents
Index 🔎︎

# 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