Istruzione For…Next

Ripete un gruppo di istruzioni un numero specificato di volte.

Sintassi

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

Argomenti:

  • Counter: variabile numerica utilizzata come contatore dei loop. La variabile non può essere un elemento dell'array o un elemento di un tipo definito dall'utente.

  • Start: valore iniziale del contatore.

  • End: valore finale del contatore.

  • Step: valore della variazione del contatore a ogni iterazione del loop. Se non viene specificato, l'argomento step viene impostato automaticamente su uno.

  • Statements: una o più istruzioni tra For e Next che vengono eseguite il numero specificato di volte.

Note

L'argomento step può essere positivo o negativo. Il valore dell'argomento step determina l'elaborazione del loop come indicato di seguito.

Table 11-33 Esecuzioni dei loop

Valore Il loop viene eseguito se
Positivo o 0 counter <= end
Negativo counter >= end

Una volta avviato il loop ed eseguite tutte le istruzioni in esso contenute, il passo viene aggiunto al contatore. A questo punto, le istruzioni nel loop vengono eseguite di nuovo (in base allo stesso test che ha causato l'esecuzione iniziale del loop) oppure il loop viene chiuso e l'esecuzione continua con l'istruzione successiva all'istruzione Next.

Note:

La modifica del valore del contatore all'interno di un loop può rendere più difficile la lettura e il debug del codice.

L'istruzioneExit For può essere utilizzata solo all'interno di una struttura di controllo For Each...Next o For...Next per fornire un modo alternativo per uscire. In qualsiasi punto del loop è possibile inserire un numero qualsiasi di istruzioni Exit For. L'istruzione Exit For viene spesso utilizzata con la valutazione di alcune condizioni (ad esempio, If...Then) e trasferisce il controllo all'istruzione immediatamente successiva a Next.

È possibile nidificare i loop For...Next inserendo un loop For...Next all'interno di un altro loop. Assegnare a ciascun loop un nome di variabile univoco come contatore. La seguente struttura è corretta:

Esempio 1

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

Esempio 2: esecuzione passo a passo positiva

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

Esempio 3: esecuzione passo a passo negativa

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