Istruzione For...Next

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

Sintassi:

Diagramma For Statement


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

Diagramma istruzione For Each


  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 specificate 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
note

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

Sosteneteci!