Condividi tramite


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

Esegue un gruppo di istruzioni in base a determinate condizioni, a seconda del 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
    Necessario. Espressione. Deve restituire True o False oppure un tipo di dati convertibile in modo implicito in Boolean.

    Se l'espressione è una variabile NullableBoolean che restituisce Niente, la condizione viene considerata come se l'espressione non sia Truee il blocco Else viene eseguito.

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

  • statements
    Opzionale. 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
    Opzionale. Una o più istruzioni successive a ElseIf...Then che vengono eseguite se elseifcondition restituisce True.

  • elsestatements
    Opzionale. 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.

Suggerimento

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, execute the three colon-separated statements in the order 
' that they appear 
If A > 10 Then A = A + 1 : B = B + A : C = C + B

Vedere anche

Riferimenti

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

Choose

Istruzione Select...Case (Visual Basic)

Switch

Operatore If (Visual Basic)

Concetti

Strutture di controllo annidate (Visual Basic)

Strutture decisionali (Visual Basic)

Operatori logici e bit per bit in Visual Basic