Istruzione If...Then...Else (Visual Basic) |
Esegue un gruppo di istruzioni in base a determinate condizioni, a seconda del valore di un'espressione.
Sintassi
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Collegamenti rapidi al codice di esempio
Questo articolo include diversi esempi che illustrano gli usi di If
...Then
...Else
affermazione:
Parti
condition
Obbligatorio. Espressione. Deve restituire True
o False
o o a un tipo di dati convertibile in modo implicito in Boolean
.
Se l'espressione è una variabile nullableBoolean
che restituisce Nothing, la condizione viene considerata come se l'espressione sia False
e i ElseIf
blocchi vengono valutati se esistono oppure il Else
blocco viene eseguito se esistente.
Then
Obbligatorio nella sintassi a riga singola; facoltativo nella sintassi multilinea.
statements
Facoltativa. Una o più istruzioni che seguono If
...Then
che vengono eseguite se condition
restituisce True
.
elseifcondition
Obbligatorio se ElseIf
è presente. Espressione. Deve restituire True
o False
o o a un tipo di dati convertibile in modo implicito in Boolean
.
elseifstatements
Facoltativa. Una o più istruzioni che seguono ElseIf
...Then
che vengono eseguite se elseifcondition
restituisce True
.
elsestatements
Facoltativa. Una o più istruzioni eseguite se nessuna espressione o elseifcondition
precedente condition
restituisce True
.
End If
Termina la versione multilinea di If
...Then
...Else
Blocco.
Commenti
Sintassi multilinea
Quando un ...If
Then
...Else
viene rilevata l'istruzione , condition
viene testata. Se condition
è True
, vengono eseguite le istruzioni seguenti Then
. Se condition
è False
, ogni ElseIf
istruzione (se presente) viene valutata in ordine. Quando viene trovato un oggetto True
elseifcondition
, le istruzioni immediatamente successive all'oggetto associato ElseIf
vengono eseguite. Se non elseifcondition
restituisce True
o se non ElseIf
sono presenti istruzioni, vengono eseguite le istruzioni seguenti Else
. Dopo aver eseguito le istruzioni seguenti Then
, ElseIf
o Else
, l'esecuzione continua con l'istruzione seguente End If
.
Le ElseIf
clausole e Else
sono entrambe facoltative. È possibile avere tutte ElseIf
le clausole desiderate in un If
...Then
...Else
istruzione, ma nessuna ElseIf
clausola può essere visualizzata dopo una Else
clausola . If
...Then
...Else
le istruzioni possono essere annidate tra loro.
Nella sintassi multilinea l'istruzione If
deve essere l'unica istruzione nella prima riga. Le ElseIf
istruzioni , Else
e End If
possono essere precedute solo da un'etichetta di riga. Il If
...Then
...Else
il blocco deve terminare con un'istruzione End If
.
Suggerimento
Selezione ... L'istruzione Case può risultare più utile quando si valuta una singola espressione con diversi valori possibili.
sintassi Single-Line
È possibile usare la sintassi a riga singola per una singola condizione con codice da eseguire se è true. Tuttavia, la sintassi a più righe offre una maggiore struttura e flessibilità ed è più facile da leggere, gestire ed eseguire il debug.
Di seguito viene esaminata la Then
parola chiave per determinare se un'istruzione è una riga If
singola. Se dopo la stessa riga viene visualizzato un commento diverso da Then
un commento, l'istruzione viene considerata come un'istruzione a riga If
singola. Se Then
è assente, deve essere l'inizio di una riga If
multipla ...Then
...Else
.
Nella sintassi a riga singola è possibile eseguire più istruzioni come risultato di una If
decisione ...Then
. Tutte le istruzioni devono trovarsi nella stessa riga e devono essere separate da due punti.
Esempio di sintassi multilinea
Nell'esempio seguente viene illustrato l'uso della sintassi multilinea di If
...Then
...Else
affermazione.
'Create a Random object to seed our starting value
Dim randomizer As New Random()
'set our variable
Dim count As Integer = randomizer.Next(0, 5)
Dim message As String
'If count is zero, output will be no items
If count = 0 Then
message = "There are no items."
'If count is 1, output will be "There is 1 item.".
ElseIf count = 1 Then
message = "There is 1 item."
'If count is greater than 1, output will be "There are {count} items.", where {count} is replaced by the value of count.
Else
message = $"There are {count} items."
End If
Console.WriteLine(message)
'This example displays output like the following:
' There are 4 items.
Esempio di sintassi annidata
L'esempio seguente contiene annidati If
...Then
...Else
Dichiarazioni.
Public Sub Main()
' Run the function as part of the WriteLine output.
Console.WriteLine("Time Check is " & CheckIfTime() & ".")
End Sub
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 3:59 P.M.,
' or if Thursday from noon to 12:59 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
'This example displays output like the following:
'Time Check is False.
esempio di sintassi Single-Line
Nell'esempio seguente viene illustrato l'uso della sintassi a riga singola.
Private Sub SingleLine()
'Create a Random object to seed our starting values
Dim randomizer As New Random()
Dim A As Integer = randomizer.Next(10, 20)
Dim B As Integer = randomizer.Next(0, 20)
Dim C As Integer = randomizer.Next(0, 5)
'Let's display the initial values for comparison
Console.WriteLine($"A value before If: {A}")
Console.WriteLine($"B value before If: {B}")
Console.WriteLine($"C value before If: {C}")
' 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
'If the condition is true, the values will be different
Console.WriteLine($"A value after If: {A}")
Console.WriteLine($"B value after If: {B}")
Console.WriteLine($"C value after If: {C}")
End Sub
'This example displays output like the following:
'A value before If: 11
'B value before If: 6
'C value before If: 3
'A value after If: 12
'B value after If: 18
'C value after If: 21
Vedi anche
.NET feedback
The .NET documentation is open source. Provide feedback here.
Commenti e suggerimenti
Invia e visualizza il feedback per