Sumário

# Instrução For...Next

Repete as instruções entre os blocos For...Next num determinado número de vezes.

## Sintaxe:

    For counter=start To end [Step step]
        bloco de instruções
        [Exit For]
        bloco de instruções
    Next [counter]

      For Each item In list
          bloco de instruções
      [Exit For]
          bloco de instruções
      Next [item]

## Variáveis:

contador: o contador de repetições com valor inicial atribuído à direita do sinal de igual (início). Somente variáveis numéricas são válidas. O contador de repetições aumentará ou diminuirá de acordo com a variável passo até que o valor fim é atingido.

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

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

passo: Define o valor pelo qual se incrementa ou decrementa o contador de iteração. Se passo não for definido, o contador é incrementado de 1. Neste caso, fim deve ser maior que início. Se desejar diminuir contador, fim deve ser menor que início, e passo deve ser um valor negativo.

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

Quando a variável contador é decrementada, o LibreOffice Basic verifica se o valor de fim foi alcançado. Assim que contador ultrapassa o valor fim, o ciclo encerra automaticamente.

É 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 contadora, o LibreOffice Basic verifica se há overflow ou underflow. O laço termina quando contador ultrapassa fim (valor de passo positivo) ou é menor que fim (valor de 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...
          bloco de instruções
          If condition = True Then Exit For
          bloco de instruções
      Next

Nos comandos For...Next aninhados, se você sair de uma repetição incondicionalmente com Exit For, somente o nível atual de interação será encerrado.

## Exemplos

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, iCount2 As Integer
    Dim sTemp As String
        sEntry = Array("Jerry","Patty","Kurt","Thomas","Michael",_
                     "David","Cathy","Susie","Edward","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

Isso explora o conteúdo do vetor ao exibir cada item contido.

      Sub iteracao_lista
          cutlery = Array("garfo", "faca", "colher")
          For Each item in cutlery
              Print item
          Next ' item
      End Sub