If...Then...Else – příkaz (Visual Basic)
Podmíněně spustí skupinu příkazů v závislosti na hodnotě výrazu.
Syntax
' 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 příklad kódu
Tento článek obsahuje několik příkladů, které ilustrují použití If ... Then ...Else Prohlášení:
Součásti
condition
Povinná hodnota. Výraz. Musí se vyhodnotit True na nebo nebo na datový False typ, který je implicitně převoditelný na Boolean .
Pokud je výraz proměnná s možnou hodnotou Null, která se vyhodnotí jako Nothing, podmínka se bude považovat za výraz , a bloky se vyhodnotí, pokud existují, nebo se blok spustí, pokud Boolean False ElseIf Else existuje.
Then
Vyžaduje se v syntaxi s jedním řádkem. Ve víceřádkové syntaxi je volitelné.
statements
Nepovinný parametr. Jeden nebo více příkazů za If ... Then které se spustí, pokud se condition vyhodnotí jako True .
elseifcondition
Vyžaduje se, ElseIf pokud je k dispozici. Výraz. Musí se vyhodnotit True na nebo nebo na datový False typ, který je implicitně převoditelný na Boolean .
elseifstatements
Nepovinný parametr. Jeden nebo více příkazů za ElseIf ... Then které se spustí, pokud se elseifcondition vyhodnotí jako True .
elsestatements
Nepovinný parametr. Jeden nebo více příkazů, které se spustí, pokud se žádný předchozí condition elseifcondition výraz nebo nevyhodnocuje jako True .
End If
Ukončí víceřádkové verze If ... Then ...Else Blok.
Poznámky
Víceřádkové syntaxe
Když If ... Then ...Else je zjištěn příkaz , condition testuje se. Pokud condition je , spustí se následující True Then příkazy. Pokud condition je , vyhodnotí se každý příkaz False ElseIf (pokud existuje) v pořadí. Když je True elseifcondition nalezen, příkazy bezprostředně po přidružené ElseIf jsou provedeny. Pokud se elseifcondition no vyhodnotí True jako , nebo pokud neexistují žádné ElseIf příkazy, spustí se následující Else příkazy. Po provedení následujících příkazů Then , nebo pokračuje provádění s ElseIf Else příkazem následujícího za End If .
Klauzule ElseIf Else a jsou volitelné. V bodě můžete mít tolik klauzulí, kolik ElseIf If chcete. Then ...Else příkaz , ale za ElseIf klauzulí se nemůže objevit žádná Else klauzule. If...Then ...Else Příkazy mohou být vnořené mezi sebou.
Ve víceřádkové syntaxi If musí být příkaz jediným příkazem na prvním řádku. Před ElseIf příkazy , a může Else End If předcházet jenom popisek řádku. ... If Then ...Else blok musí končít End If příkazem .
Tip
V okně Vybrat... 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.
Single-Line syntaxe
Pro jednu podmínku s kódem, který se má spustit, pokud je true, můžete použít jednosoučtovou syntaxi. Syntaxe s více řádky však poskytuje větší strukturu a flexibilitu a usnadňuje čtení, údržbu a ladění.
Co následuje za Then klíčovým slovem , se zkoumá, aby se zjistilo, jestli je příkaz jedno řádky If . Pokud se za na stejném řádku zobrazí něco jiného než komentář, je příkaz považován za jedno Then If řádkový příkaz. Pokud chybí, musí to být začátek více řádků Then If ... Then ...Else.
V jedno řádkové syntaxi můžete v důsledku rozhodnutí ... provést If více Then 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 Prohlášení.
Module Multiline
Public Sub Main()
'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)
End Sub
End Module
'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 Příkazy.
Module Nested
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
End Module
'This example displays output like the following:
'Time Check is False.
Single-Line příklad syntaxe
Následující příklad znázorňuje použití jednos řádkové syntaxe.
Module SingleLine
Public Sub Main()
'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
End Module
'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