模块
目录
索引 🔎︎

# 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