模块
目录
索引 🔎︎

# 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