If...Then...Else — Instrukcja (Visual Basic)

Warunkowo wykonuje grupy poleceń w zależności od wartości wyrażenia.

Składnia

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

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

Ten artykuł zawiera kilka przykładów ilustrujących użycie ...IfThen...Else Instrukcja:

generatora

condition
Wymagany. Wyrażenie. Musi mieć wartość lub TrueFalse, lub typ danych, który jest niejawnie konwertowany na Boolean.

Jeśli wyrażenie jest zmienną dopuszczającąBoolean wartość Null, która daje wartość Nothing, warunek jest traktowany tak, jakby wyrażenie to False, a ElseIf bloki są oceniane, jeśli istnieją, lub Else blok jest wykonywany, jeśli istnieje.

Then
Wymagane w składni jednowierszowej; opcjonalnie w składni wielowierszowej.

statements
Opcjonalny. Co najmniej jedna instrukcja wykonywanaIfThen, jeśli condition zostanie obliczona na Truewartość .

elseifcondition
Wymagane, jeśli ElseIf jest obecny. Wyrażenie. Musi mieć wartość lub TrueFalse, lub typ danych, który jest niejawnie konwertowany na Boolean.

elseifstatements
Opcjonalny. Co najmniej jedna instrukcja wykonywanaElseIfThen, jeśli elseifcondition zostanie obliczona na Truewartość .

elsestatements
Opcjonalny. Co najmniej jedna instrukcja wykonywana, jeśli żadne poprzednie condition wyrażenie nie elseifcondition zwróci wartości .True

End If
Kończy wielowierszową wersję ...IfThen...Else Bloku.

Uwagi

Składnia wielowierszowa

Gdy ...IfThen...Else napotkano instrukcję , condition jest testowana. Jeśli condition parametr to True, wykonywane są następujące Then instrukcje. Jeśli condition wartość to False, każda ElseIf instrukcja (jeśli istnieje) jest obliczana w kolejności. Po znalezieniu elementu Trueelseifcondition instrukcje bezpośrednio po skojarzonym są ElseIf wykonywane. Jeśli nie ma wartości , Truelub jeśli nie elseifcondition ma ElseIf żadnych instrukcji, następujące Else instrukcje są wykonywane. Po wykonaniu instrukcji po wykonaniu instrukcji , ThenElseIflub Elsewykonanie jest kontynuowane przy użyciu instrukcji następującej: End If.

Klauzule ElseIf i Else są opcjonalne. Możesz mieć dowolną liczbę ElseIf klauzul w ...IfThen...Else instrukcja, ale klauzula nie ElseIf może pojawić się po klauzuli Else . If...Then...Else instrukcje mogą być zagnieżdżone w obrębie siebie.

W składni If wielowierszowej instrukcja musi być jedyną instrukcją w pierwszym wierszu. Instrukcje ElseIf, Elsei End If mogą być poprzedzone tylko etykietą wiersza. Then...If...Else blok musi kończyć się instrukcją End If .

Napiwek

Wybierz ... Instrukcja przypadku może być bardziej przydatna podczas oceniania pojedynczego wyrażenia, które ma kilka możliwych wartości.

Składnia jednowierszowa

Składnię jednowierszową można użyć dla pojedynczego warunku z kodem do wykonania, jeśli jest to prawda. Jednak składnia wielu wierszy zapewnia większą strukturę i elastyczność oraz ułatwia odczytywanie, konserwowanie i debugowanie.

To, co następuje po słowie kluczowym, jest badane w Then celu określenia, czy instrukcja jest pojedynczym wierszem If. Jeśli coś innego niż komentarz pojawia się po Then tym samym wierszu, instrukcja jest traktowana jako instrukcja jednowierszowa If . Jeśli Then jest nieobecny, musi to być początek wielu wierszy If...Then...Else.

W składni jednowierszowej można wykonać wiele instrukcji w wyniku Ifdecyzji ...Then . Wszystkie instrukcje muszą znajdować się w tym samym wierszu i być oddzielone dwukropkami.

Przykład składni wielowierszowej

Poniższy przykład ilustruje użycie składni wielowierszowej ...IfThen...Else Instrukcja.

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

Przykład składni zagnieżdżonej

Poniższy przykład zawiera zagnieżdżone If...Then...Else Instrukcji.

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.

Przykład składni jednowierszowej

Poniższy przykład ilustruje użycie składni jednowierszowej.

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

Zobacz też