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

Ayrıca bkz.