Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 TrueFalseimplicit módon átalakítható adattípusra vagy adattípusra kell kiértékelnie Boolean.
Ha a kifejezés null Boolean változó, amely a Semmi értéket értékeli ki, a rendszer úgy kezeli a feltételt, mintha a kifejezés Falselenne, é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ő IfThen 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 TrueFalseimplicit módon átalakítható adattípusra vagy adattípusra kell kiértékelnie Boolean.
elseifstatements
Opcionális. A következő ElseIfThen 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öbbsorosIf ...Then...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 Trueelseifcondition 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 Truekövetkezőt, vagy ha nincsenek ElseIf utasítások, az alábbi Else utasítások lesznek végrehajtva. Az alábbi ThenElseIfElseutasítások végrehajtása után a végrehajtás a következő End Ifutasí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 ElseIf nem Else 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.IfThen...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