Instrução For…Next

Repete um grupo de instruções um número especificado de vezes.

Sintaxe

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

Argumentos:

  • Counter: Variável numérica usada como contador de loops. A variável não pode ser um elemento de matriz nem um elemento de um tipo definido pelo usuário.

  • Start: Valor inicial do contador.

  • End: Valor final do contador.

  • Step: O contador de valores é alterado toda vez que o loop é executado. Se este argumento não especificado, o valor padrão da etapa será um.

  • Statements: Uma ou mais instruções entre For e Next que são executadas o número especificado de vezes.

Comentários

O argumento step pode ser positivo ou negativo. O valor do argumento step determina o processamento do loop da seguinte forma:

Table 11-33 Execuções de Loop

Valor Loop será executado se
Positivo ou 0 contador <= fim
Negativo contador >= fim

Depois que o loop começa e todas as instruções no loop são executadas, a etapa é adicionada ao contador. Nesse ponto, as instruções no loop são executadas novamente (com base no mesmo teste que causou a execução inicial do loop) ou o loop é encerrado e a execução continua com a instrução que sucede a instrução Next.

Note:

Alterar o valor do contador dentro de um loop pode dificultar a leitura e a depuração do código.

A instrução Exit For só pode ser usada em uma estrutura de controle For Each...Next ou For...Next para fornecer uma maneira alternativa de saída. É possível incluir qualquer número de instruções Exit For em qualquer parte do loop. A instrução Exit For geralmente é usada com a avaliação de alguma condição (por exemplo, If...Then) e transfere o controle para a instrução que sucede a instrução Next.

Você pode aninhar os loops For...Next colocando um loop For...Next dentro de outro. Dê a cada loop um nome de variável exclusivo como seu contador. A seguinte construção está correta:

Exemplo 1:

For I = 1 To 10
      For J = 1 To 10
            For K = 1 To 10
            Next 
     Next
Next

Exemplo 2: Progressão Positiva

Dim i
For i = 1 To 3 Step 2
    '"Countdown: " & i
Next
'Output:
'Countdown: 1
'Countdown: 3

Exemplo 3: Progressão Negativa

Dim i
For i = 3 To 1 Step -2
    '"Countdown: " & i
Next
'Output:
'Countdown: 3
'Countdown: 1