Procedura: eseguire più istruzioni ripetutamente (Visual Basic)

Le strutture di ciclo consentono di eseguire ripetutamente un blocco di istruzioni. Il ciclo può essere eseguito un numero indeterminato di volte, a seconda del valore Boolean di una condizione oppure un numero di volte definito da una variabile speciale.

Esecuzione ciclica ripetuta un numero di volte indeterminato

Per eseguire un gruppo di istruzioni finché una condizione è True

  • Utilizzare l'Istruzione While...End While (Visual Basic) per specificare la condizione che controlla le ripetizioni del ciclo. Nell'esempio che segue il blocco di istruzioni viene ripetuto finché il number è maggiore di 6.

    Sub checkWhile()
        Dim counter As Integer = 0
        Dim number As Integer = 10
        While number > 6
            number -= 1
            counter += 1
        End While
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    

    L'istruzione While verifica sempre la condizione prima di iniziare il ciclo. Se number fosse stato inizializzato a 6 invece che a 10, le istruzioni del ciclo non sarebbero mai state eseguite.

Per eseguire un gruppo di istruzioni finché una condizione rimane True

  • Utilizzare l'Istruzione Do...Loop (Visual Basic) e specificare la condizione di verifica all'inizio o alla fine del ciclo. La posizione della parola chiave While determina il punto in cui la condizione viene verificata. Questa condizione è illustrata nell'esempio che segue.

    Sub checkWhileFirst()
        Dim counter As Integer = 0
        Dim number As Integer = 10
        Do While number > 6
            number -= 1
            counter += 1
        Loop
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    Sub checkWhileLast()
        Dim counter As Integer = 0
        Dim number As Integer = 5
        Do
            number -= 1
            counter += 1
        Loop While number > 6
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    

    Nell'esempio precedente il primo ciclo Do viene eseguito quattro volte, mentre il secondo ciclo Do viene eseguito una sola volta.

Per eseguire un gruppo di istruzioni fino a quando una condizione diventa True

  • Utilizzare la costruzione Do...Loop con la parola chiave Until anziché While. Analogamente a While, la posizione della parola chiave determina il punto in cui la condizione viene verificata. Questa condizione è illustrata nell'esempio che segue.

    Sub checkUntilFirst()
        Dim counter As Integer = 0
        Dim number As Integer = 20
        Do Until number = 15
            number -= 1
            counter += 1
        Loop
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    Sub checkUntilLast()
        Dim counter As Integer = 0
        Dim number As Integer = 20
        Do
            number -= 1
            counter += 1
        Loop Until number = 15
        MsgBox("The loop ran " & counter & " times.")
    End Sub
    

    Nell'esempio precedente ciascun ciclo Do viene eseguito cinque volte.

Esecuzione ciclica ripetuta un numero di volte stabilito

I cicli While e Do sono utili quando non si conosce in anticipo quante volte sarà necessario eseguire le istruzioni del ciclo. Se invece si prevede di eseguire il ciclo per un numero specifico di volte, si consiglia di utilizzare l'Istruzione For...Next (Visual Basic). A differenza di un ciclo While o Do, un ciclo For...Next utilizza una variabile di controllo, il cui valore aumenta o diminuisce a ogni ripetizione del ciclo.

Per eseguire un gruppo di istruzioni un numero di volte stabilito

  1. Stabilire i valori iniziale e finale della variabile di controllo utilizzando l'istruzione For per specificarli.

    For i As Integer = 1 To 10
    

    Se la variabile di controllo non viene dichiarata al di fuori del ciclo, è possibile utilizzare la clausola As per dichiararla come parte dell'istruzione For.

  2. Utilizzare la parola chiave Step per indicare l'entità dell'aumento del valore della variabile di controllo per ciascuna iterazione. Se non diversamente specificato, il valore viene aumentato di 1. Utilizzare un valore negativo per diminuire il valore della variabile di controllo.

    For i As Integer = 10 To 1 Step -1
    
  3. Completare la costruzione For...Next con un'istruzione Next dopo l'ultima istruzione da ripetere. È possibile specificare la variabile di controllo nell'istruzione Next.

    Function addBackward(ByVal highest As Integer) As Integer
        Dim total As Integer = 0
        For i As Integer = highest To 1 Step -1
            total += i
        Next i
        Return total
    End Function
    

    Nell'esempio precedente viene restituita la somma di tutti i numeri interi compresi tra 1 e il valore passato al parametro highest.

Vedere anche

Attività

Procedura: trasferire un controllo fuori da una struttura di controllo (Visual Basic)

Procedura: eseguire diverse istruzioni per ciascun elemento in un insieme o in una matrice (Visual Basic)

Procedura: migliorare le prestazioni di un ciclo (Visual Basic)

Procedura: passare alla successiva iterazione di un ciclo (Visual Basic)

Riferimenti

Istruzione For Each...Next (Visual Basic)

Concetti

Strutture decisionali (Visual Basic)

Strutture di ciclo (Visual Basic)

Altre strutture di controllo (Visual Basic)

Strutture di controllo annidate (Visual Basic)

Altre risorse

Flusso di controllo in Visual Basic