Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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. Ve samostatném příkazu je znak = interpretován jako operátor přiřazení a přiřazuje hodnotu napravo proměnné nalevo. Následující příklad to ilustruje.
If newCustomer = True Then
newCustomer = False
End If
Další informace najdete v tématu Porovnání hodnot a výroky.
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. Následující příklad to ilustruje.
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 Trueoba 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 Short-Circuiting
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. Následující příklad to ilustruje.
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 znehodnocuje 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 typu Non-Short-Circuiting
Naproti tomu jsou obě strany vyhodnoceny při použití logických operátorů And a Or. Následující příklad to ilustruje.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
Předchozí příklad volá testFunction(), i když se levý výraz vyhodnocuje jako False.
Vložené výrazy
Pomocí závorek můžete řídit pořadí vyhodnocování logických výrazů. Výrazy uzavřené v závorkách se vyhodnotí jako první. U několika úrovní vnoření je priorita udělena nejhlouběji 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.