Módulo
Conteúdo
Índice 🔎︎

# Instrução For...Next

Repete as instruções entre o bloco For... Next um número especificado de vezes.

## Sintaxe:

    For counter=start To end [Step step]
    statement block
    [Exit For]
    statement block
    Next [counter]

## Variáveis:

Counter: o contador de repetições inicialmente atribuiu o valor para a posição à direita do sinal de igual (início). Somente as variáveis numéricas são válidas. O contador de repetições aumentará ou diminuirá de acordo com a variável Pulo (Step) até que a instrução End seja passada.

Start: variável numérica que define o valor no início da repetição.

End: variável numérica que define o valor no fim do repetição.

Step: define o valor (Pulo) pelo qual o contador de repetições deverá ser aumentado ou diminuído. Se o valor não for especificado, o contador de repetições será aumentado em 1. Nesse caso, o parâmetro End deve ser maior que o parâmetro Start. Para diminuir o parâmetro Counter, o parâmetro End deverá ser menor que o parâmetro Start e o parâmetro Step deverá ter um valor negativo.

O comando For...Next repete todas as instruções de acordo com o número de vezes especificado pelos parâmetros.

À medida que a variável do contador diminui, o LibreOffice Basic verifica se o valor final foi alcançado. Assim que o contador passa o valor final, a repetição é automaticamente encerrada.

É possível aninhar instruções For...Next. Se não especificar uma variável a seguir à instrução Next, Next consulta automaticamente a instrução For mais recente.

Se você especificar um incremento 0, as instruções entre For e Next serão repetidas continuamente.

Ao decrementar a variável do contador, o LibreOffice Basic verifica se excedeu a capacidade acima do valor superior ou abaixo do valor inferior. A repetição finaliza quando o contador exceder o fim (passo positivo) ou for menor que o fim (passo negativo).

Use a instrução Exit For para encerrar a repetição incondicionalmente. Essa instrução deve estar contida no comando For...Next. Use a instrução If...Then para testar a condição de saída da seguinte forma:

For...

statements

If condition = True Then Exit For

statements

Next

Nota: no comando For...Next aninhado, se você sair de uma repetição incondicionalmente com Exit For, somente o nível atual de interação será encerrado.

## Exemplo

O exemplo a seguir usa duas repetições aninhadas para ordenar um vetor de cadeia de caracteres com 10 elementos ( sEntry() ), que primeiro são preenchidos com diversos conteúdos:

    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