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 ] ]
Szybkie linki do przykładowego kodu
Ten artykuł zawiera kilka przykładów ilustrujących użycie ...If
Then
...Else
wypowiedź:
generatora
condition
Wymagany. Wyrażenie. Musi mieć wartość lub True
False
, 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 wykonywanaIf
Then
, jeśli condition
zostanie obliczona na True
wartość .
elseifcondition
Wymagane, jeśli ElseIf
jest obecny. Wyrażenie. Musi mieć wartość lub True
False
, lub typ danych, który jest niejawnie konwertowany na Boolean
.
elseifstatements
Opcjonalny. Co najmniej jedna instrukcja wykonywanaElseIf
Then
, jeśli elseifcondition
zostanie obliczona na True
wartość .
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ę ...If
Then
...Else
blok.
Uwagi
Składnia wielowierszowa
Gdy ...If
Then
...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 True
elseifcondition
instrukcje bezpośrednio po skojarzonym są ElseIf
wykonywane. Jeśli nie ma wartości , True
lub jeśli nie elseifcondition
ma ElseIf
żadnych instrukcji, następujące Else
instrukcje są wykonywane. Po wykonaniu instrukcji po wykonaniu instrukcji , Then
ElseIf
lub Else
wykonanie 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 ...If
Then
...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
, Else
i 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 If
decyzji ...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 ...If
Then
...Else
wypowiedź.
'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