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 veya True False olarak, örtülü olarak 'a dönüştürülebilir bir veri türüne Boolean değerlendirmeli.
İfade Nothing olarak değerlendirilen null değere sahip bir değişkense, koşul ifade olarak kabul edilir ve bloklar varsa değerlendirilir veya varsa blok Boolean False ElseIf Else yürütülür.
Then
Tek satırlı söz dizimsinde gereklidir; çok satırlı söz dizimlerinde isteğe bağlıdır.
statements
İsteğe bağlı. aşağıdaki ... deyiminin ardından If gelen ve Then değerlendirmesinin ardından yürütülen bir veya daha condition fazla True deyim.
elseifcondition
Varsa ElseIf gereklidir. Ifa -de. veya veya True False olarak, örtülü olarak 'a dönüştürülebilir bir veri türüne Boolean değerlendirmeli.
elseifstatements
İsteğe bağlı. aşağıdaki ... deyiminin ardından ElseIf gelen ve Then değerlendirmesinin ardından yürütülen bir veya daha elseifcondition fazla True deyim.
elsestatements
İsteğe bağlı. Önceki veya ifadesi olarak değerlendirilmezse yürütülen bir veya condition elseifcondition daha fazla True deyim.
End If
Çok satırlı sürümünü If sonlandırılır... Then ...Else Blok.
Açıklamalar
Çok satırlı söz dizimi
Bir If ... 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 deyim ElseIf (varsa) sırayla değerlendirilir. bir True elseifcondition bulunursa, ilişkilinin hemen ardından ElseIf deyimleri yürütülür. değerlendirmesi elseifcondition yoksa True veya deyimi ElseIf yoksa, aşağıdaki Else deyimler yürütülür. , veya sonrasındaki deyimleri Then ElseIf yürüttkten Else sonra, yürütme aşağıdaki deyimiyle devam End If eder.
ve ElseIf yan Else tümceleri isteğe bağlıdır. Bir içinde istediğiniz ElseIf kadar yan tümceye sahip If olabilir... Then ...Else deyimini kullansa da ElseIf bir yan tümceden sonra hiçbir yan Else tümcesi görünmez. If...Then ...Else deyimleri iç içe geçmiş olabilir.
Çok satırlı söz If dizimsinde, deyimi ilk satırda tek deyim olması gerekir. ElseIf, Else ve End If deyimleri yalnızca bir satır etiketinden önce olabilir. ... If Then ...Else bloğu bir deyimiyle End If bitimli.
İpucu
Seç... Case Deyimi, birkaç olası değeri olan tek bir ifadeyi değerlendirirken daha kullanışlı olabilir.
Single-Line söz dizimi
Doğruysa yürütmek üzere kod ile tek bir koşul için tek satırlı söz dizimi kullanabilirsiniz. Ancak, çok satırlı söz dizimi daha fazla yapı ve esneklik sağlar ve okuması, bakımı ve hata ayıklaması daha kolaydır.
deyiminin tek Then satırlı olup olmadığını belirlemek için anahtar sözcüğü incelendi. If Aynı satırda açıklama dışında bir Then şey görünürse, deyimi tek satırlı deyim olarak kabul If edilir. Thenyoksa, birden çok satırlı bir If Then ... ...Else.
Tek satırlı söz dizimsinde, ... kararının sonucu olarak yürütülen birden çok deyimi If Then olabilir. Tüm deyimler aynı satırda olmalı ve iki nokta üst üste ile ayrılabilir.
Çok satırlı söz dizimi örneği
Aşağıdaki örnek, çok satırlı söz dizimlerinin kullanımını If 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 geçmiş söz dizimi örneği
Aşağıdaki örnek iç içe If geçmiş ... 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 örnek, tek satırlı söz dizimlerinin kullanımını gösterir.
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