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
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.
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
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: 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)