If...Then...Else Deyimi (Visual Basic)

İfadenin değerine bağlı olarak bir deyim grubunu koşullu yürütür.

Sözdizimi

' Multiline syntax:
If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If

' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]

Bu makale, If...Then...Else Deyim:

Parça

condition
Gerekli. Ifa -de. veya Falseveya için örtük olarak dönüştürülebilir bir veri türü olarak BooleandeğerlendirilmelidirTrue.

İfade Nothing olarak değerlendirilen Null atanabilirBoolean bir değişkense, koşul ifadesi Falsegibi kabul edilir ve ElseIf bloklar varsa değerlendirilir veya Else varsa blok yürütülür.

Then
Tek satırlı söz diziminde gereklidir; çok satırlı söz diziminde isteğe bağlı.

statements
isteğe bağlı. olarak değerlendirilirse conditionTrueyürütülen ...Then sonrasındaki Ifbir veya daha fazla deyim.

elseifcondition
Varsa ElseIf gereklidir. Ifa -de. veya Falseveya için örtük olarak dönüştürülebilir bir veri türü olarak BooleandeğerlendirilmelidirTrue.

elseifstatements
isteğe bağlı. olarak değerlendirilirse elseifconditionTrueyürütülen ...Then sonrasındaki ElseIfbir veya daha fazla deyim.

elsestatements
isteğe bağlı. Önceki condition veya ifade olarak değerlendirilmezse Trueyürütülen bir veya elseifcondition daha fazla deyim.

End If
Çok satırlı sürümünü Ifsonlandırır...Then...Else Blok.

Açıklamalar

Çok satırlı söz dizimi

IfBir ...Then...Else deyimiyle karşılaşıldı, condition test edildi. ise conditionTrue, aşağıdaki Then deyimler yürütülür. ise conditionFalse, her ElseIf deyim (varsa) sırayla değerlendirilir. bulunduğunda Trueelseifcondition , ilişkilinin ElseIf hemen ardından gelen deyimler yürütülür. değerlendirmesi yoksa elseifconditionTrueveya deyimi yoksa ElseIf , aşağıdaki Else deyimler yürütülür. , veya ElseElseIfsonrasındaki deyimleri Thenyürüttkten sonra yürütme aşağıdaki deyimiyle End Ifdevam eder.

ElseIf ve Else yan tümceleri isteğe bağlıdır. Bir ... içinde Ifistediğiniz kadar ElseIf yan tümceniz olabilir...Then...Else deyimi, ancak yan tümceden Else sonra hiçbir ElseIf yan tümce görünemez. If...Then...Else deyimleri iç içe yerleştirilmiş olabilir.

Çok satırlı söz diziminde, If deyimi ilk satırdaki tek deyim olmalıdır. ElseIf, Elseve End If deyimlerinin önünde yalnızca bir satır etiketi bulunabilir. . If..Then...Else bloğu bir End If deyimle bitmelidir.

İpucu

Seç ... Case Deyimi , birkaç olası değer içeren tek bir ifadeyi değerlendirirken daha yararlı olabilir.

Tek Satırlı söz dizimi

Tek bir koşul için tek satırlı söz dizimini kodla birlikte kullanabilir ve doğruysa yürütebilirsiniz. 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.

Bir deyiminin tek satırlı Ifolup olmadığını belirlemek için anahtar sözcüğünü Then izleyenler incelenir. Açıklama dışında bir şey aynı satırda sonra Then görünürse, deyimi tek satırlı If deyim olarak değerlendirilir. Yoksa Then , çok satırlı Ifbir 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 Ifkullanımını gösterir...Then...Else Deyim.

'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.

İç içe söz dizimi örneği

Aşağıdaki örnek iç içe yerleştirilmiş If...Then...Else Ifa -de.

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.

Tek Satırlı söz dizimi örneği

Aşağıdaki örnekte tek satırlı söz diziminin kullanımı gösterilmektedir.

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

Ayrıca bkz.