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 Then A = A + 1 : B = B + A : C = C + B
Vedere anche
Riferimenti
Istruzione Select...Case (Visual Basic)
Concetti
Strutture di controllo annidate (Visual Basic)