Istruzione While...End While (Visual Basic)

Esegue una serie di istruzioni purché una determinata condizione sia True.

Sintassi

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

Parti

Termine Definizione
condition Obbligatorio. Espressione Boolean. Se condition è Nothing, Visual Basic considera come False.
statements facoltativo. Una o più istruzioni che segue While, che vengono eseguite ogni volta condition è True.
Continue While facoltativo. Trasferisce il controllo all'iterazione successiva del While blocco.
Exit While facoltativo. Trasferisce il controllo all'uscita dal While blocco.
End While Obbligatorio. Termina la definizione del blocco While.

Commenti

Usare una While...End While struttura quando si desidera ripetere un set di istruzioni per un numero indefinito di volte, purché una condizione rimanga True. Se si vuole una maggiore flessibilità con la posizione in cui si testa la condizione o il risultato per cui viene testata, è preferibile... Istruzione Loop. Se si desidera ripetere le istruzioni un numero di volte impostato, il metodo For... L'istruzione next è in genere una scelta migliore.

Nota

La While parola chiave viene usata anche in While, clausola Skip While e clausola Take While.

Se condition è True, tutta l'esecuzione viene statements eseguita fino a quando non viene End While rilevata l'istruzione . Il controllo torna quindi all'istruzione While e viene condition nuovamente controllato. Se condition è ancora True, il processo viene ripetuto. Se è , il Falsecontrollo passa all'istruzione che segue l'istruzione End While .

L'istruzione While controlla sempre la condizione prima di avviare il ciclo. Il ciclo continua mentre la condizione rimane True. Se condition è False la prima volta che si immette il ciclo, non viene eseguito nemmeno una volta.

In condition genere è il risultato di un confronto tra due valori, ma può essere qualsiasi espressione che restituisce un valore di tipo condition dati booleano (True o False). Questa espressione può includere un valore di un altro tipo di dati, ad esempio un tipo numerico, convertito in Boolean.

È possibile annidare i While cicli inserendo un ciclo all'interno di un altro. È anche possibile annidare diversi tipi di strutture di controllo l'una all'interno dell'altra. Per altre informazioni, vedere Strutture di controllo annidate.

Exit While

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

In genere si usa Exit While dopo la valutazione di una condizione , ad esempio in una If...Then...Else struttura . È possibile uscire da un ciclo se si rileva una condizione che rende superflua o impossibile continuare l'iterazione, ad esempio un valore rroneo o una richiesta di terminazione. È possibile usare quando Exit While si testa una condizione che potrebbe causare un ciclo Exit While un ciclo che potrebbe essere eseguito un numero estremamente elevato o addirittura infinito di volte. È quindi possibile usare per Exit While eseguire l'escape del ciclo.

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

Quando viene usato all'interno While di cicli annidati, Exit While trasferisce il controllo fuori dal ciclo più interno e nel successivo livello superiore di annidamento.

L'istruzione Continue While trasferisce immediatamente il controllo all'iterazione successiva del ciclo. Per altre informazioni, vedere Istruzione Continue.

Esempio 1

Nell'esempio seguente le istruzioni nel ciclo continuano a essere eseguite fino a quando la index variabile non è 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 

Esempio 2

Nell'esempio seguente viene illustrato l'utilizzo delle Continue While istruzioni Exit While e .

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

Esempio 3

Nell'esempio seguente vengono lette tutte le righe in un file di testo. Il OpenText metodo apre il file e restituisce un oggetto StreamReader che legge i caratteri. Nella condizione While il metodo Peek di determina StreamReader 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

Vedi anche