Contenuto

# Istruzione For...Next

Ripete le istruzioni incluse nel blocco For...Next per il numero di volte specificato.

## Sintassi:

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

      For Each item In list
          blocco istruzioni
      [Exit For]
          blocco istruzioni
      Next [item]

## Variabili:

counter (contatore): inizialmente, al counter del ciclo viene assegnato il valore a destra del segno di uguale (start). Sono ammesse solo variabili numeriche. Il valore del contatore del ciclo aumenta o diminuisce in base alla variabile step, finché non viene passato il valore end.

start (inizio): variabile numerica che definisce il valore iniziale del ciclo.

end (fine): variabile numerica che definisce il valore finale alla fine del ciclo.

step: imposta il valore di cui deve essere aumentato o diminuito il contatore del ciclo>. Se la variabile step non è specificata, il contatore del ciclo viene incrementato di 1. In questo caso, end deve essere maggiore di start. Se volete che il valore del counter diminuisca, dovete impostare un valore end minore di quello start e assegnare a step un valore negativo.

Il ciclo For...Next ripete tutte le istruzioni del ciclo per il numero di volte specificato dai parametri.

A mano a mano che la variabile counter diminuisce, LibreOffice Basic controlla se sia stato raggiunto il valore end. Non appena counter supera il valore end, il ciclo termina automaticamente.

Le istruzioni For...Next possono essere annidate. Se non si specifica una variabile dopo l'istruzione Next, quest'ultima si riferisce automaticamente all'istruzione For più recente.

Se specificate un incremento di 0, le istruzioni tra For e Next vengono ripetute continuamente.

Nel conteggiare a ritroso la variabile del contatore, LibreOffice Basic controlla gli eventuali overflow o underflow. Il ciclo termina quando counter supera end (valore Step positivo) o scende al di sotto di end (valore Step negativo).

Per uscire dal ciclo in modo incondizionato, usate l'istruzione Exit For. Questa istruzione deve trovarsi all'interno di un ciclo For...Next. Usate l'istruzione If...Then per provare la condizione di uscita come segue:

      For...
          blocco istruzioni
          If condition = True Then Exit For
          blocco istruzioni
      Next

Nei cicli For...Next annidati, l'uscita incondizionata da un ciclo con Exit For ha effetto su un solo ciclo.

## Esempi

L'esempio seguente utilizza due cicli annidati per ordinare una matrice di stringhe con 10 elementi ( sVoce() ) che viene riempita con vari tipi di contenuto:

    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

Esplora il contenuto di una matrice per visualizzare ogni singolo elemento che questa contiene.

      Sub list_iteration
          posate = Array("forchetta", "coltello", "cucchiaio")
          For Each item in posate
              Print item
          Next ' item
      End Sub