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 instrukcji =
autonomicznej znak jest interpretowany jako operator przypisania i przypisuje wartość po prawej stronie do zmiennej po lewej stronie. Ilustruje to poniższy przykład.
If newCustomer = True Then
newCustomer = False
End If
Aby uzyskać więcej informacji, zobacz Porównanie wartości i instrukcje.
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
. Ilustruje to poniższy przykład.
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ównania można łączyć przy użyciu operatorów logicznych w celu utworzenia bardziej złożonych wyrażeń logicznych. 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 zwarciowe
Operatory AndAlso
logiczne i OrElse
wykazują zachowanie znane jako zwarcie. 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. Ilustruje to poniższy przykład.
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 jest wywoływane testFunction()
, ponieważ wyrażenie po lewej stronie fałszuje całe wyrażenie.
Podobnie, jeśli lewe wyrażenie w wyrażeniu logicznym przy użyciu OrElse
funkcji oblicza wartość True
, wykonanie przechodzi do następnego wiersza kodu bez oceniania prawego wyrażenia, ponieważ wyrażenie po lewej stronie zweryfikowało już całe wyrażenie.
Porównanie z operatorami niewzwiązanymi
Natomiast obie strony operatora logicznego są oceniane, gdy operatory And
logiczne i Or
są używane. Ilustruje to poniższy przykład.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
Poprzednie przykładowe wywołania testFunction()
, mimo że wyrażenie po lewej stronie daje wartość False
.
Wyrażenia nawiasów
Nawiasy umożliwiają sterowanie kolejnością obliczania wyrażeń logicznych. Wyrażenia ujęte w nawiasy 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.