Condividi tramite


Istruzione If...Then...Else (Visual Basic) |

Consentono di eseguire un gruppo di istruzioni in modo condizionale in base al valore di un'espressione.

' Multiple-line syntax:
If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If

' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]

Parti

  • condition
    Obbligatoria. Espressione. Deve restituire True o False oppure un tipo di dati convertibile in modo implicito in Boolean.

  • Then
    Obbligatoria nella sintassi a riga singola, facoltativa in quella a più righe.

  • statements
    Facoltativo. Una o più istruzioni successive a If...Then che vengono eseguite se condition restituisce True.

  • elseifcondition
    Obbligatoria se è presente ElseIf. Espressione. Deve restituire True o False oppure un tipo di dati convertibile in modo implicito in Boolean.

  • elseifstatements
    Facoltativo. Una o più istruzioni successive a ElseIf...Then che vengono eseguite se elseifcondition restituisce True.

  • elsestatements
    Facoltativo. Una o più istruzioni eseguite se nessuna delle espressioni condition o elseifcondition precedenti restituisce True.

  • End If
    Termina il blocco If...Then...Else.

Note

Sintassi a più righe

Quando viene rilevata un'istruzione If...Then...Else, l'espressione condition viene testata. Se condition è True, verranno eseguite le istruzioni successive a Then, Se condition è False, ogni istruzione ElseIf (se presenti) viene valutata seguendo un ordine. Quando viene rilevata una parte elseifcondition che restituisce True, verranno eseguite le istruzioni immediatamente successive all'istruzione ElseIf associata. Se nessuna parte elseifcondition restituisce True, o se non vi sono istruzioni ElseIf, verranno eseguite le istruzioni successive a Else. Dopo l'esecuzione delle istruzioni successive a Then, ElseIf o Else, l'esecuzione procede con l'istruzione successiva all'istruzione End If.

Le clausole ElseIf e Else sono entrambe facoltative. Il numero di clausole ElseIf consentito in un'istruzione If...Then...Else è illimitato, a condizione che nessuna clausola ElseIf venga visualizzata dopo la clausola Else. Le istruzioni If...Then...Else possono essere annidate una all'interno dell'altra.

Nella sintassi a più righe, l'istruzione If deve essere l'unica istruzione sulla prima riga. Le istruzioni ElseIf, Else e End If possono essere precedute solo da un'etichetta di riga. È necessario che il blocco If...Then...Else termini con un'istruzione End If.

SuggerimentoSuggerimento

L'istruzione Istruzione Select...Case (Visual Basic) potrebbe essere più utile quando viene valutata una sola espressione con diversi valori possibili.

Sintassi a riga singola

È possibile utilizzare la sintassi a riga singola per testi brevi e semplici. Tuttavia, la struttura fornita tramite la sintassi a più righe risulta migliore, più flessibile e garantisce maggiore facilità nelle operazioni di lettura, gestione e debug.

Il testo che segue la parola chiave Then viene esaminato per determinare se l'istruzione è un'istruzione If a riga singola. Se dopo Then, sulla stessa riga viene visualizzato un elemento diverso da un commento, l'istruzione viene considerata come un'istruzione If a riga singola. Se la parola chiave Then non è presente, si tratta dell'inizio di un'istruzione If...Then...Else a più righe.

In una sintassi a riga singola è possibile fare in modo che vengano eseguite più istruzioni come risultato di una decisione If...Then. Tutte le istruzioni devono trovarsi sulla stessa riga ed essere separate da due punti.

Esempio

Nell'esempio seguente viene illustrato l'utilizzo della sintassi a più righe dell'istruzione If...Then...Else.

        Dim count As Integer = 0
        Dim message As String

        If count = 0 Then
            message = "There are no items."
        ElseIf count = 1 Then
            message = "There is 1 item."
        Else
            message = "There are " & count & " items."
        End If

Nell'esempio seguente sono presenti istruzioni If...Then...Else annidate.

Private Function CheckIfTime() As Boolean
    ' Determine the current day of week and hour of day.
    Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
    Dim hour As Integer = DateTime.Now.Hour

    ' Return True if Wednesday from 2 to 4 P.M.,
    ' or if Thursday from noon to 1 P.M.
    If dayW = DayOfWeek.Wednesday Then
        If hour = 14 Or hour = 15 Then
            Return True
        Else
            Return False
        End If
    ElseIf dayW = DayOfWeek.Thursday Then
        If hour = 12 Then
            Return True
        Else
            Return False
        End If
    Else
        Return False
    End If
End Function

Nell'esempio seguente viene illustrato l'utilizzo della sintassi a riga singola.

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Vedere anche

Attività

Procedura: eseguire istruzioni in base a una o più condizioni (Visual Basic)

Riferimenti

Direttive #If...Then...#Else

Choose

Istruzione Select...Case (Visual Basic)

Switch

Concetti

Strutture di controllo annidate (Visual Basic)

Strutture decisionali (Visual Basic)

Operatori logici e bit per bit in Visual Basic

Cronologia delle modifiche

Data

Cronologia

Motivo

Dicembre 2010

La sezione Note è stata riorganizzata.

Miglioramento delle informazioni.

Dicembre 2010

Aggiunto un esempio.

Commenti e suggerimenti dei clienti.