Istruzione While...End While (Visual Basic)

Consente di eseguire una serie di istruzioni purché la condizione sia True.

While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

Parti

Termine

Definizione

condition

Necessario.Espressione Boolean.Se la condition è Nothing, Visual Basic la considera False.

statements

Opzionale.Una o più istruzioni basate su While, eseguite ogni volta che condition è True.

Continue While

Opzionale.Trasferisce il controllo all'iterazione successiva del blocco While.

Exit While

Opzionale.Trasferisce il controllo all'esterno del blocco While.

End While

Necessario.Termina la definizione del blocco While.

Note

Utilizzare una struttura While...End While quando si desidera ripetere un gruppo di iistruzioni un numero infinito di volte, fino a quando la condizione rimane True.Se si desidera una maggiore flessibilità su dove verificare la condizione o per quale risultato si esegue il test, è possibile scegliere l'Istruzione Do...Loop (Visual Basic).Per ripetere le istruzioni un numero di volte definito, l' Istruzione For...Next (Visual Basic) costituisce generalmente una scelta migliore.

[!NOTA]

La parola chiave While viene utilizzata anche nell'Istruzione Do...Loop (Visual Basic), nella Clausola Skip While (Visual Basic) e nella Clausola Take While (Visual Basic).

Se condition è True, tutte le statements vengono eseguite fino a quando non viene rilevata l'istruzione End While.Il controllo torna quindi all'istruzione While e condition viene controllato di nuovo.Se condition è ancora True, il processo verrà ripetuto.Se è False, il controllo passa all'istruzione che segue l'istruzione End While.

L'istruzione While verifica sempre la condizione prima di avviare il ciclo.Il looping continua mentre la condizione rimane True.Se condition è False quando è attivato il ciclo, non funziona anche una volta.

condition in genere il risultato di un confronto tra due valori, ma può essere qualsiasi espressione che restituisca a Tipo di dati Boolean (Visual Basic) un valore (True o False).L'espressione può includere un valore di un altro tipo di dati, come un tipo numerico, che è stato convertito in Boolean.

È possibile annidare cicli While inserendo un ciclo all'interno di un altro.È inoltre possibile annidare strutture di controllo di tipo diverso inserendone una all'interno di un altra.Per ulteriori informazioni, vedere Strutture di controllo annidate (Visual Basic).

Mentre uscita

L'istruzione Mentre uscita può fornire un altro modo per uscire da un ciclo While.DiExit While trasferisce il controllo immediatamente all'istruzione che segue l'istruzione End While.

In genere si utilizza Exit While dopo che una condizione verrà valutata, ad esempio in una struttura If...Then...Else ).È possibile uscire da un ciclo se si rileva una condizione che rende inutile o impossibile continuare a scorrere, quale un valore erroneo o una richiesta di interruzione.È possibile utilizzare Exit While quando si testano per una condizione che potrebbe causare un ciclo infinito, un ciclo che potrebbe richiedere un numero di volte estremamente grande o addirittura infinito.È quindi possibile utilizzare Exit While per utilizzare caratteri di escape il ciclo.

È possibile inserire un numero illimitato di istruzioni Exit While in qualsiasi punto del ciclo While.

Se utilizzata all'interno di cicli While annidati, l'istruzione Exit While consente il trasferimento del controllo dal ciclo più interno al livello di annidamento successivo superiore.

Di Continue While di istruzione del controllo trasferisce immediatamente all'iterazione successiva del ciclo.Per ulteriori informazioni, vedere Istruzione Continue (Visual Basic).

Esempio

Nell'esempio seguente l'esecuzione delle istruzioni nel ciclo continua finché la variabile index non risulta maggiore di 10.

Dim index As Integer = 0
While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
End While

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Nell'esempio riportato di seguito viene illustrato l'utilizzo delle istruzioni Continue While e Exit While.

Dim index As Integer = 0
While index < 100000
    index += 1

    ' If index is between 5 and 7, continue
    ' with the next iteration.
    If index >= 5 And index <= 8 Then
        Continue While
    End If

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop.
    If index = 10 Then
        Exit While
    End If
End While

Debug.WriteLine("")
' Output: 1 2 3 4 9 10

Nell'esempio seguente vengono lette tutte le righe di un file di testo.Il file viene aperto tramite il metodo OpenText, mediante il quale viene restituito un oggetto StreamReader che consente la lettura dei caratteri.Lo stato While, il metodo PeekStreamReader determina se il file contiene caratteri aggiuntivi.

Private Sub ShowText(ByVal textFilePath As String)
    If System.IO.File.Exists(textFilePath) = False Then
        Debug.WriteLine("File Not Found: " & textFilePath)
    Else
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)

        While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        End While

        sr.Close()
    End If
End Sub

Vedere anche

Riferimenti

Istruzione Do...Loop (Visual Basic)

Istruzione For...Next (Visual Basic)

Tipo di dati Boolean (Visual Basic)

Istruzione Exit (Visual Basic)

Istruzione Continue (Visual Basic)

Concetti

Strutture di ciclo (Visual Basic)

Strutture di controllo annidate (Visual Basic)