Výrazy logických hodnot (Visual Basic)
Logický výraz je výraz, který se vyhodnotí jako hodnota logického datového typu: True
nebo False
. Boolean
výrazy mohou mít několik forem. Nejjednodušší je přímé porovnání hodnoty Boolean
proměnné s literálem Boolean
, jak je znázorněno v následujícím příkladu.
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
Dva významy operátoru =
Všimněte si, že příkaz newCustomer = True
přiřazení vypadá stejně jako výraz v předchozím příkladu, ale provádí jinou funkci a používá se jinak. V předchozím příkladu výraz newCustomer = True
představuje logickou hodnotu a =
znaménko je interpretováno jako relační operátor. V samostatném příkazu =
se znaménko interpretuje jako operátor přiřazení a přiřadí hodnotu vpravo proměnné vlevo. Toto dokládá následující příklad.
If newCustomer = True Then
newCustomer = False
End If
Další informace najdete v tématu Porovnání hodnot a příkazy.
Operátory porovnání
Relační operátory, například =
, , >
<
, <=
<>
a >=
vytvářejí logické výrazy porovnáním výrazu na levé straně operátoru s výrazem na pravé straně operátoru a vyhodnocením výsledku jako True
nebo False
. Toto dokládá následující příklad.
42 < 81
Vzhledem k tomu, že 42 je menší než 81, logický výraz v předchozím příkladu se vyhodnotí jako True
. Další informace o tomto typu výrazu najdete v tématu Porovnání hodnot.
Relační operátory v kombinaci s logickými operátory
Porovnávací výrazy je možné kombinovat pomocí logických operátorů k vytváření složitějších logických výrazů. Následující příklad ukazuje použití relačních operátorů ve spojení s logickým operátorem.
x > y And x < 1000
V předchozím příkladu závisí hodnota celkového výrazu na hodnotách výrazů na každé straně operátoru And
. Pokud jsou True
oba výrazy , pak se celkový výraz vyhodnotí jako True
. Pokud je některý z výrazů False
, pak se celý výraz vyhodnotí jako False
.
Operátory zkratování
Logické operátory AndAlso
a OrElse
vykazují chování známé jako zkratování. Operátor zkratování vyhodnocuje levý operand jako první. Pokud levý operand určuje hodnotu celého výrazu, bude provádění programu pokračovat bez vyhodnocení správného výrazu. Toto dokládá následující příklad.
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
V předchozím příkladu operátor vyhodnotí levý výraz , 45 < 12
. Vzhledem k tomu, že se levý výraz vyhodnotí jako False
, musí se celý logický výraz vyhodnotit jako False
. Provádění programu tak přeskočí provádění kódu v If
bloku bez vyhodnocení správného výrazu , testFunction(3)
. Tento příklad nevolá, testFunction()
protože levý výraz falsifikuje celý výraz.
Podobně platí, že pokud levý výraz v logickém výrazu, který používá k OrElse
vyhodnocení True
, provádění pokračuje na další řádek kódu bez vyhodnocení správného výrazu, protože levý výraz již ověřil celý výraz.
Porovnání s operátory bez zkratek
Naproti tomu obě strany logického operátoru se vyhodnocují při použití logických operátorůAnd
.Or
Toto dokládá následující příklad.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
Předchozí příklad volá testFunction()
, i když levý výraz je vyhodnocen jako False
.
Závorky
Pomocí závorek můžete řídit pořadí vyhodnocování logických výrazů. Výrazy uzavřené závorky se vyhodnotí jako první. U několika úrovní vnoření je priorita udělena nejmíspodnějším vnořeným výrazům. V závorkách pokračuje vyhodnocení podle pravidel priority operátoru. Další informace naleznete v tématu Priorita operátoru v jazyce Visual Basic.