Udostępnij za pośrednictwem


Wyrażenia logiczne (Visual Basic)

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.

Zobacz także