If...Then...Else – příkaz (Visual Basic)
Podmíněně spustí skupinu příkazů v závislosti na hodnotě výrazu.
Syntaxe
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Rychlé odkazy na ukázkový kód
Tento článek obsahuje několik příkladů, které ilustrují použití If
...Then
...Else
výrok:
Součástky
condition
Povinný: Výraz. Musí být vyhodnocen na True
datový typ nebo False
datový typ, který je implicitně konvertibilní na Boolean
.
Pokud je výraz proměnnou NullableBoolean
, která se vyhodnotí jako Nothing, podmínka se považuje za výraz False
a ElseIf
bloky se vyhodnotí, pokud existují, nebo Else
se blok spustí, pokud existuje.
Then
Požadováno v jednořádkové syntaxi; volitelné v víceřádkové syntaxi.
statements
Nepovinné. Jeden nebo více příkazů, které následují If
...Then
se spustí, pokud condition
se vyhodnotí jako True
.
elseifcondition
Vyžaduje se, pokud ElseIf
je k dispozici. Výraz. Musí být vyhodnocen na True
datový typ nebo False
datový typ, který je implicitně konvertibilní na Boolean
.
elseifstatements
Nepovinné. Jeden nebo více příkazů, které následují ElseIf
...Then
se spustí, pokud elseifcondition
se vyhodnotí jako True
.
elsestatements
Nepovinné. Jeden nebo více příkazů, které se spustí, pokud se nevyhodnotí True
žádný předchozí condition
výraz nebo elseifcondition
výraz .
End If
Ukončí víceřádkové verze If
...Then
...Else
blokovat.
Poznámky
Víceřádkové syntaxe
Když ...If
Then
...Else
je zjištěn příkaz, condition
je testován. Pokud condition
ano True
, spustí se následující Then
příkazy. Pokud condition
ano False
, vyhodnocuje se každý ElseIf
příkaz (pokud existuje) v pořadí. True
elseifcondition
Po nalezení se příkazy okamžitě za přidruženými ElseIf
příkazy spustí. Pokud se žádná elseifcondition
hodnota nevyhodnotí True
nebo pokud neexistují žádné ElseIf
příkazy, spustí se následující Else
příkazy. Po provedení následujících Then
ElseIf
příkazů , nebo Else
, provádění pokračuje s následujícím End If
příkazem .
Klauzule ElseIf
i Else
klauzule jsou volitelné. Můžete mít tolik ElseIf
klauzulí, kolik chcete v ...If
Then
...Else
příkaz, ale za klauzulí Else
se nemůže objevit žádná ElseIf
klauzule. If
...Then
...Else
příkazy se dají vnořit do sebe.
Ve víceřádkové syntaxi musí být příkaz If
jediným příkazem na prvním řádku. Před ElseIf
příkazy , Else
a End If
příkazy lze předcházet pouze popiskem řádku. Then
...If
...Else
blok musí končit příkazemEnd If
.
Tip
Výběr ... Příkaz Case může být užitečnější při vyhodnocování jednoho výrazu, který má několik možných hodnot.
Syntaxe s jedním řádkem
Pro jednu podmínku s kódem můžete použít jednořádkovou syntaxi, která se má provést, pokud je pravdivá. Syntaxe s více řádky ale poskytuje větší strukturu a flexibilitu a usnadňuje čtení, údržbu a ladění.
Co následuje za klíčovým slovem Then
, je zkoumáno, aby bylo možné určit, zda je příkazem jeden řádek If
. Pokud se za stejným řádkem zobrazí Then
cokoli jiného než komentář, příkaz se považuje za příkaz s jedním řádkem If
. Pokud Then
chybí, musí to být začátek multiple-line If
...Then
...Else
.
V jednořádkové syntaxi můžete mít v důsledku If
rozhodnutí ...Then
spuštěno více příkazů. Všechny příkazy musí být na stejném řádku a musí být oddělené dvojtečkami.
Příklad víceřádkové syntaxe
Následující příklad znázorňuje použití víceřádkové syntaxe If
...Then
...Else
výrok.
'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.
Příklad vnořené syntaxe
Následující příklad obsahuje vnořené If
...Then
...Else
výroky.
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.
Příklad jednořádkové syntaxe
Následující příklad ukazuje použití jednořádkové syntaxe.
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