If...Then...Else Deyimi (Visual Basic)
İfadenin değerine bağlı olarak bir deyim grubunu koşullu yürütür.
Syntax
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Örnek koda hızlı bağlantılar
Bu makalede, If
...Then
...Else
Deyim:
Bölümler
condition
Gereklidir. Ifa -de. veya False
veya örtük olarak dönüştürülebilir bir veri türü olarak Boolean
değerlendirilmelidirTrue
.
İfade, Nothing olarak değerlendirilen null atanabilirBoolean
bir değişkense, koşul ifadesi False
gibi değerlendirilir ve ElseIf
bloklar varsa değerlendirilir veya Else
blok varsa yürütülür.
Then
Tek satırlı söz diziminde gereklidir; çok satırlı söz diziminde isteğe bağlı.
statements
İsteğe bağlı. olarak değerlendirilirse condition
True
yürütülen ...Then
ifadesini izleyen If
bir veya daha fazla deyim.
elseifcondition
Varsa ElseIf
gereklidir. Ifa -de. veya False
veya örtük olarak dönüştürülebilir bir veri türü olarak Boolean
değerlendirilmelidirTrue
.
elseifstatements
İsteğe bağlı. olarak değerlendirilirse elseifcondition
True
yürütülen ...Then
ifadesini izleyen ElseIf
bir veya daha fazla deyim.
elsestatements
İsteğe bağlı. Önceki condition
veya ifade olarak değerlendirilmezse True
yürütülen bir veya elseifcondition
daha fazla deyim.
End If
Çok satırlı sürümünü sonlandırır If
...Then
...Else
Blok.
Açıklamalar
Çok satırlı söz dizimi
If
Bir ...Then
...Else
deyimiyle karşılaşıldı, condition
test edildi. ise condition
True
, aşağıdaki Then
deyimler yürütülür. ise condition
False
, her ElseIf
deyim (varsa) sırayla değerlendirilir. bir True
elseifcondition
bulunduğunda, ilişkilinin ElseIf
hemen ardından gelen deyimler yürütülür. değerlendirmesi yoksa elseifcondition
True
veya deyimi yoksa ElseIf
, aşağıdaki Else
deyimler yürütülür. , ElseIf
veya Else
sonrasındaki deyimleri Then
yürüttkten sonra yürütme aşağıdaki deyimiyle End If
devam eder.
ElseIf
ve Else
yan tümcelerinin her ikisi de isteğe bağlıdır. Bir içinde istediğiniz If
kadar yan ElseIf
tümceniz olabilir...Then
...Else
deyimini kullanabilirsiniz, ancak yan tümceden Else
sonra hiçbir ElseIf
yan tümce görüntülenmez. If
...Then
...Else
deyimleri iç içe yerleştirilebilir.
Çok satırlı söz diziminde deyimi ilk If
satırdaki tek deyim olmalıdır. ElseIf
, Else
ve End If
deyimlerinin önünde yalnızca bir satır etiketi bulunabilir. . If
..Then
...Else
block bir End If
deyimiyle bitmelidir.
İpucu
Seç... Case Deyimi, birkaç olası değer içeren tek bir ifadeyi değerlendirirken daha yararlı olabilir.
Single-Line söz dizimi
Doğruysa yürütülecek kodla tek bir koşul için tek satırlık söz dizimini kullanabilirsiniz. Ancak, çok satırlı söz dizimi daha fazla yapı ve esneklik sağlar ve okunması, bakımı ve hata ayıklaması daha kolaydır.
Anahtar sözcüğünü izleyen, deyimin Then
tek satırlı If
olup olmadığını belirlemek için incelenir. Açıklama dışında bir şey aynı satırda sonra Then
görünürse, deyimi tek satırlı If
bir deyim olarak değerlendirilir. Yoksa Then
, çok satırlı If
bir başlangıcı olmalıdır ...Then
...Else
.
Tek satırlı söz diziminde, bir If
...Then
kararının sonucu olarak birden çok deyimin yürütülmesini sağlayabilirsiniz. Tüm deyimler aynı satırda olmalı ve iki nokta üst üste ile ayrılmalıdır.
Çok satırlı söz dizimi örneği
Aşağıdaki örnek, çok satırlı söz diziminin If
kullanımını gösterir...Then
...Else
Deyim.
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.
İç içe söz dizimi örneği
Aşağıdaki örnek iç içe yerleştirilmiş If
...Then
...Else
Ifa -de.
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 söz dizimi örneği
Aşağıdaki örnekte tek satırlık söz diziminin kullanımı gösterilmektedir.
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