Conteúdo

# Instrução For...Next

Repete as instruções contidas no bloco For...Next um número especificado 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 do ciclo contador é inicialmente atribuído ao valor à direita do sinal de igual (início). Apenas são válidas variáveis numéricas. O contador do ciclo aumenta ou diminui de acordo com a variável passo até que fim seja ultrapassado.

start: Variável numérica que define o valor inicial no início do ciclo.

end: Variável numérica que define o valor final no final do ciclo.

step: Define o valor pelo qual o contador do ciclo deve ser aumentado ou diminuído. Se step não for especificado, o contador do ciclo é incrementado em 1. Neste caso, end deve ser maior do que start. Se pretender diminuir counter, end deve ser menor do que start e deve ser atribuído um valor negativo a step.

O ciclo For...Next repete todas as instruções no ciclo durante o número de vezes especificado pelos parâmetros.

À medida que a variável counter vai diminuindo, o LibreOffice Basic verifica se o valor end foi atingido. Assim que o counter ultrapassar o valor end, o ciclo termina automaticamente.

É possível imbricar 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 especificar um incremento de 0, as instruções entre For e Next repetem-se continuamente.

Ao fazer a contagem decrescente da variável contador, o LibreOffice Basic verifica se há overflow ou underflow. O ciclo termina quando contador excede end (valor positivo de Step) ou é inferior a end (valor negativo de Step).

Utilize a instrução Exit For para terminar o ciclo incondicionalmente. Esta instrução terá de estar num ciclo For...Next. Utilize a instrução If...Then para testar a condição de fim como se segue:

      For...
          bloco de instruções
          If condition = True Then Exit For
          bloco de instruções
      Next

Em loops For...Next aninhados, se sair de um loop incondicionalmente com Exit For, apenas um loop é abandonado.

## Exemplos

Exemplos

    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

Isto analisa o conteúdo de um array para apresentar cada elemento que este contém.

      Sub list_iteration
          talheres = Array("garfo", "faca", "colher")
          Para cada peça de talheres
              Imprimir item
          Próximo « item
      Fim do Sub

Necessitamos da sua ajuda!