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 ] ]

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

Bölümler

condition
Gereklidir. Ifa -de. veya Falseveya ö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 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 conditionTrueyürütülen ...Then ifadesini izleyen Ifbir veya daha fazla deyim.

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

elseifstatements
İsteğe bağlı. olarak değerlendirilirse elseifconditionTrueyürütülen ...Then ifadesini izleyen ElseIfbir veya daha fazla deyim.

elsestatements
İsteğ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ü sonlandırır If...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. bir Trueelseifcondition bulunduğunda, 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. , ElseIfveya Elsesonrasındaki deyimleri Thenyürüttkten sonra yürütme aşağıdaki deyimiyle End Ifdevam eder.

ElseIf ve Else yan tümcelerinin her ikisi de isteğe bağlıdır. Bir içinde istediğiniz Ifkadar 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, Elseve 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ı Ifolup 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ı 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.

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

Ayrıca bkz.