Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wyrażenie logiczne to wyrażenie, które oblicza wartość typu danych logicznych: True
lub False
.
Boolean
wyrażenia mogą mieć kilka form. Najprostszym jest bezpośrednie porównanie wartości Boolean
zmiennej do Boolean
literału, jak pokazano w poniższym przykładzie.
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
Dwa znaczenia operatora =
Zwróć uwagę, że instrukcja newCustomer = True
przypisania wygląda tak samo jak wyrażenie w poprzednim przykładzie, ale wykonuje inną funkcję i jest używana inaczej. W poprzednim przykładzie wyrażenie newCustomer = True
reprezentuje wartość logiczną, a =
znak jest interpretowany jako operator porównania. W autonomicznej instrukcji =
znak jest interpretowany jako operator przypisania i przypisuje wartość po prawej stronie do zmiennej po lewej stronie. Poniższy przykład ilustruje to.
If newCustomer = True Then
newCustomer = False
End If
Aby uzyskać więcej informacji, zobacz Porównanie wartości i Wyrażenia.
Operatory porównania
Operatory porównania, takie jak =
, <
, >
, <>
, <=
i >=
generują wyrażenia logiczne, porównując wyrażenie po lewej stronie operatora z wyrażeniem po prawej stronie operatora i oceniając wynik jako True
lub False
. Poniższy przykład ilustruje to.
42 < 81
Ponieważ wartość 42 jest mniejsza niż 81, wyrażenie logiczne w poprzednim przykładzie daje wartość True
. Aby uzyskać więcej informacji na temat tego rodzaju wyrażenia, zobacz Porównanie wartości.
Operatory porównania połączone z operatorami logicznymi
Wyrażenia porównawcze można łączyć przy użyciu operatorów logicznych, aby stworzyć bardziej złożone wyrażenia logiczne. W poniższym przykładzie pokazano użycie operatorów porównania w połączeniu z operatorem logicznym.
x > y And x < 1000
W poprzednim przykładzie wartość wyrażenia ogólnego zależy od wartości wyrażeń po każdej stronie And
operatora. Jeśli oba wyrażenia to True
, ogólne wyrażenie daje wartość True
. Jeśli którekolwiek z wyrażeń to False
, całe wyrażenie daje wartość False
.
Operatory Short-Circuiting
Operatory logiczne AndAlso
i OrElse
wykazują zachowanie znane jako krótkie spięcie. Operator zwarciowy najpierw ocenia lewy operand. Jeśli lewy operand określa wartość całego wyrażenia, wykonywanie programu będzie kontynuowane bez obliczania odpowiedniego wyrażenia. Poniższy przykład ilustruje to.
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
W poprzednim przykładzie operator oblicza wyrażenie po lewej stronie. 45 < 12
Ponieważ wyrażenie po lewej stronie daje wartość False
, całe wyrażenie logiczne musi mieć wartość False
. W związku z tym wykonywanie programu pomija wykonywanie kodu w If
bloku bez obliczania odpowiedniego wyrażenia : testFunction(3)
. W tym przykładzie nie wywoływane jest testFunction()
ponieważ wyrażenie po lewej stronie unieważnia całe wyrażenie.
Podobnie, jeśli lewe wyrażenie w wyrażeniu logicznym korzystając z OrElse
ocenia się jako True
, wykonanie przechodzi do następnego wiersza kodu bez oceny prawego wyrażenia, ponieważ lewe wyrażenie już potwierdziło całość wyrażenia.
Porównanie z operatorami bezShort-Circuiting
Natomiast obie strony operatora logicznego są oceniane, gdy używane są operatory And
i Or
. Poniższy przykład ilustruje to.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
Poprzedni przykład wywołuje testFunction()
, mimo że wyrażenie po lewej stronie daje wartość False
.
Wyrażenia w nawiasach
Nawiasy umożliwiają sterowanie kolejnością obliczania wyrażeń logicznych. Wyrażenia w nawiasach są najpierw obliczane. W przypadku wielu poziomów zagnieżdżania pierwszeństwo jest przyznawane dla najbardziej głęboko zagnieżdżonych wyrażeń. W nawiasach ocena jest kontynuowana zgodnie z regułami pierwszeństwa operatora. Aby uzyskać więcej informacji, zobacz Pierwszeństwo operatora w Visual Basic.