Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 Falsedatový 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 Falsea 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 Falsedatový 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í conditionžádný předchozí elseifcondition výraz nebo True výraz .
End If
Ukončí víceřádkové verze If...Then...Else blokovat.
Poznámky
Víceřádkové syntaxe
Když ...IfThen...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í Truenebo pokud neexistují žádné ElseIf příkazy, spustí se následující Else příkazy. Po provedení následujících ThenElseIfpříkazů , nebo Else, provádění pokračuje s následujícím End Ifpříkazem .
Klauzule ElseIf i Else klauzule jsou volitelné. Můžete mít tolik ElseIf klauzulí, kolik chcete v ...IfThen...Else příkaz, ale za klauzulí ElseIf se nemůže objevit žádná Else 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 ElseIfpříkazy , Elsea End If příkazy lze předcházet pouze popiskem řádku.
If...Then...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 Ifrozhodnutí ...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