Ha... Akkor... Else utasítás (Visual Basic)
Feltételesen végrehajt egy utasításcsoportot egy kifejezés értékétől függően.
Syntax
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Példakódra mutató gyorshivatkozások
Ez a cikk több példát is tartalmaz, amelyek a If
...Then
...Else
állítás:
Részek
condition
Szükséges. Kifejezés. A kiértékelésnek True
False
implicit módon átalakítható adattípusra vagy adattípusra kell kiértékelnie Boolean
.
Ha a kifejezés null értékű Boolean
változó, amely a Semmi értéket értékeli ki, a rendszer úgy kezeli a feltételt, mintha a kifejezés False
lenne, és a ElseIf
blokkokat kiértékeli, ha léteznek, vagy ha létezik, a Else
blokk végrehajtásra kerül.
Then
Kötelező az egysoros szintaxisban; nem kötelező a többsoros szintaxisban.
statements
Opcionális. A következő If
Then
egy vagy több ... utasítás, amely akkor lesz végrehajtva, ha condition
a kiértékelése a következő leszTrue
: .
elseifcondition
ElseIf
Ha jelen van, kötelező megadni. Kifejezés. A kiértékelésnek True
False
implicit módon átalakítható adattípusra vagy adattípusra kell kiértékelnie Boolean
.
elseifstatements
Opcionális. A következő ElseIf
Then
egy vagy több ... utasítás, amely akkor lesz végrehajtva, ha elseifcondition
a kiértékelése a következő leszTrue
: .
elsestatements
Opcionális. Egy vagy több olyan utasítás, amely akkor lesz végrehajtva, ha egy korábbi condition
vagy elseifcondition
kifejezés sem értékeli ki a következőt True
: .
End If
Leállítja a többsorosThen
...If
...Else
blokk.
Megjegyzések
Többsoros szintaxis
Amikor egy If
...Then
...Else
az utasítást észlelte, condition
tesztelte. Ha condition
igen True
, a rendszer végrehajtja az alábbi Then
utasításokat. Ha condition
igen False
, minden ElseIf
utasítás (ha van ilyen) kiértékelése sorrendben történik. Ha talál egy True
elseifcondition
parancsot, a rendszer végrehajtja azokat az utasításokat, amelyek közvetlenül a társított ElseIf
után következnek. Ha a rendszer nem elseifcondition
értékeli ki a True
következőt, vagy ha nincsenek ElseIf
utasítások, az alábbi Else
utasítások lesznek végrehajtva. Az alábbi Then
ElseIf
Else
utasítások végrehajtása után a végrehajtás a következő End If
utasítással folytatódik.
A ElseIf
záradékok és Else
a záradékok egyaránt választhatók. Annyi záradékkal rendelkezhetElseIf
, amennyit csak szeretne egy If
...Then
...Else
utasítást, de egy záradék után Else
nem ElseIf
jelenhet meg záradék. If
...Then
...Else
utasítások egymásba ágyazhatók.
A többsoros szintaxisban az If
utasításnak kell lennie az egyetlen utasításnak az első sorban. A ElseIf
, Else
és End If
az utasítások csak vonalcímkével előzhetők meg. A If
...Then
...Else
a blokknak utasítással End If
kell végződnie.
Tipp.
A Kijelölés... Az esetkimutatás akkor lehet hasznosabb, ha több lehetséges értékkel rendelkező kifejezést értékel ki.
Egysoros szintaxis
Az egysoros szintaxist használhatja egyetlen feltételhez, és a kódot végrehajthatja, ha az igaz. A többsoros szintaxis azonban több struktúrát és rugalmasságot biztosít, és könnyebben olvasható, karbantartható és hibakeresésre használható.
Az alábbiakban a Then
kulcsszót vizsgáljuk annak megállapításához, hogy egy utasítás egysoros-e If
. Ha egy megjegyzésen kívül más is megjelenik Then
ugyanazon a sorban, az utasítás egysoros If
utasításként lesz kezelve. Ha Then
hiányzik, akkor egy többsoros If
...Then
...Else
.
Az egysoros szintaxisban több utasítást is végrehajthat egy If
...Then
döntés eredményeként. Minden utasításnak ugyanazon a sorban kell lennie, és kettőspontokkal kell elválasztani.
Példa többsoros szintaxisra
Az alábbi példa a ... többsoros szintaxisának használatát szemlélteti.If
Then
...Else
állítás.
'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élda beágyazott szintaxisra
Az alábbi példa beágyazott If
...Then
...Else
Nyilatkozatok.
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élda egysoros szintaxisra
Az alábbi példa az egysoros szintaxis használatát mutatja be.
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
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: