Skip to main content

Visual Basic.NET 2003 (Ukázka, strana 99)

Page 1

Visual Basic .NET 2003

Proměnná = Proměnná + Hodnota Ano, je pravda, že stejného výsledku dosáhneme také pomocí jednoduchého přiřazovacího operátoru a operátoru pro sčítání. Přesto se doporučuje, abyste vždy, pokud je to možné, používali raději zkrácenou verzi přiřazovacích operátorů. Je to výhodné ze dvou důvodů: 1. Ušetříte si psaní nadbytečného programového kódu. 2. Umožníte kompilátoru lépe uspořádat překládaný kód. Všechny ostatní zkrácené operátory fungují stejně, odlišují se jenom typem prováděné aritmetické operace. Pro příznivce praktických ukázek je připraveno další sousto: 'Deklarace proměnné typu Integer. Dim PočetBodů As Integer 'Inkrementace proměnné PočetBodů o 10 jednotek. PočetBodů = PočetBodů + 10 'Opětovná inkrementace proměnné PočetBodů pomocí 'zkráceného operátoru pro sčítání a přiřazení. 'Zkrácený operátor plní stejnou funkci jako předcházející 'řádek kódu (PočetBodů = PočetBodů + 10). PočetBodů += 10 'Zobrazení hodnoty proměnné v okně se zprávou. MessageBox.Show("Počet bodů je " & PočetBodů & ".") Víte, jaká hodnota bude zobrazena v okně se zprávou? Říkáte-li 20, máte samozřejmě pravdu. Jak jsme dospěli k tomuto výsledku? Při deklaraci je proměnná PočetBodů implicitně inicializována nulovou hodnotou. Následně je hodnota proměnné zvětšena o 10 a pak pomocí zkráceného operátoru ještě o 10, dohromady tedy o 20. 2.12.4 Logické operátory Logické operátory se dostávají ke slovu ve chvíli, kdy je nutné provést porovnání logických výrazů nebo jejich částí. Výsledkem aplikace logických operátorů je logická hodnota, přesněji pravdivostní hodnota True nebo False. Logické operátory se používají pro vyjádření logické konjunkce, logické disjunkce, negace a jiných programových operacích. Jazyk Visual Basic .NET nabízí tyto logické operátory: logický operátor And, logický operátor Or, logický operátor Not, logický operátor Xor, logický operátor AndAlso, logický operátor OrElse. Přehled a aplikace logických operátorů And, Or, Not a Xor jsou uvedeny v tabulce 2.8. Operátor And provádí logickou konjunkci svých operandů. Tento operátor vrací pravdivostní hodnotu True právě tehdy, obsahují-li oba operandy hodnotu True. V jakémkoliv jiném případě je operátorem And poskytnuta hodnota False.

98

ZÁKLADY PROGRAMOVÁNÍ V JAZYCE VISUAL BASIC .NET 2003

Ukázka elektronické knihy, UID: KOS181484


And

Or

Not

Xor

Operand1

Operand2

X = True

Y = True

Aplikace operátoru

Výsledná pravdivostní hodnota True

X = True

Y = False

X = False

Y = True

X = False

Y = False

False

X = True

Y = True

True

X = True

Y = False

X = False

Y = True

X = False

Y = False

X = True Y = False X = True

Y = True

X = True

Y = False

X = False

Y = True

X = False

Y = False

X And Y

X Or Y

False False

True True False

Not X

False

Not Y

True False

X Xor Y

True True False

Tab. 2.8: Přehled a aplikace operátorů And, Or, Not a Xor

Prostřednictvím operátoru Or můžeme realizovat logickou disjunkci operandů. Pokud alespoň jeden z operandů obsahuje hodnotu True, je operátorem Or vrácena hodnota True. Není-li tomu tak, operátor vrací hodnotu False.

Visual Basic .NET 2003

Operátor

Logickou negaci má na starosti operátor Not, jehož použití spočívá v převrácení původní pravdivostní hodnoty operandu. Operátor Not je příkladem unárního operátoru, což znamená, že tento operátor lze použít jenom na jeden operand. Obsahuje-li operand pravdivostní hodnotu True, bude po aplikaci operátoru Not obsahovat hodnotu False (toto pravidlo platí samozřejmě i opačně). Zvláštní kategorii logických operátorů tvoří operátory AndAlso a OrElse, protože uskutečňují zkrácené vyhodnocování logických výrazů. Operátor AndAlso uskutečňuje na svých operandech logickou konjunkci (podobně jako jeho kolega And). Rozdíl ovšem spočívá ve zkráceném systému vyhodnocování logického výrazu: pokud je hodnota prvního operandu rovna hodnotě False, není hodnota druhého operandu vůbec testována a ihned je vrácena výslední hodnota False. Z charakteru logické konjunkce totiž vyplývá, že logický výraz je pravdivý (hodnota True), jenom pokud oba operandy současně obsahují hodnotu True. Jestliže je ale již první operand vyhodnocen na hodnotu False, není jednoduše možné, aby byla hodnota celého výrazu True, a proto Visual Basic .NET neztrácí čas s vyhodnocováním druhého operandu. To je podstata systému zkráceného vyhodnocování logických výrazů pomocí operátoru AndAlso. Operátor OrElse uskutečňuje logickou disjunkci na dvou operandech, ovšem rovněž implementuje systém zkráceného vyhodnocování logického výrazu. V případě, že je první operand vyhodnocen na hodnotu True, není druhý operand testován, ale okamžitě je operátorem vrácena pravdivostní hodnota True. Logická disjunkce říká, že pro to, aby logický výraz nabyl hodnotu True, je nutné, aby alespoň jeden z operandů disponoval hodnotou True.

ZÁKLADY PROGRAMOVÁNÍ V JAZYCE VISUAL BASIC .NET 2003

99

Ukázka elektronické knihy, UID: KOS181484


Visual Basic .NET 2003

Pakliže již první operand tuto podmínku splňuje, neexistuje žádný rozumný důvod pro analýzu druhého operandu. Aplikace logických operátorů AndAlso a OrElse může ve vhodných chvílích ušetřit procesoru výkon několika programových instrukcí a přispět k lepšímu výkonu vyvíjené aplikace. Uvedené operátory dokazují svoji sílu zejména v komplikovaných a výpočetně náročných logických výrazech. 2.12.5 Operátory pro zřetězení Nabídku této skupiny operátorů tvoří dva operátory pro zřetězení: & (symbol ampersand) a + (symbol plus). S operátorem pro zřetězení ve tvaru ampersandu (&) jste se setkali již mnohokrát, a proto víte, že tento operátor převádí své operandy na textové řetězce (hodnoty datového typu String) a poté je spojí do jednoho textového řetězce. Operátor pro zřetězení, jenž je reprezentován symbolem plus (+), pracuje poněkud odlišně, v závislosti na datovém typu svých operandů. Pokud jsou oba operandy textové řetězce, tedy hodnoty typu String, je práce operátoru + zcela shodná s použitím operátoru &. To znamená, že proběhne spojení textových hodnot obou operandů do nového textového řetězce. Zde je příklad: Dim Text1 As String = "Visual" Dim Text2 As String = "Basic .NET" Dim Text3 As String = Text1 + Text2 Jelikož oba operandy, respektive proměnné Text1 a Text2 obsahují textové řetězce, operátor + se chová stejně jako operátor &. Jisté potíže ovšem nastávají, když je operátor + aplikován na operandy, z nichž jeden neobsahuje textový řetězec, ale numerickou hodnotu. V tomto případě práce operátoru závisí na skutečnosti, zda je aktivována volba Option Strict. Je-li tomu tak (Option Strict On), bude kompilátorem generována chybová zpráva. Pokud je volba Option Strict deaktivována (Option Strict Off), bude se operátor snažit implicitně přetypovat textovou hodnotu operandu do datového typu Double a provést součet vzniklé numerické hodnoty s číselnou hodnotou, kterou obsahuje druhý operand. Nepovede-li se realizovat implicitní konverzi textového řetězce, bude generována chybová výjimka InvalidCastException. Z uvedeného vyplývá, že operátor + lze pro řetězení hodnot operandů použít jenom tehdy, obsahují-li tyto operandy textové řetězce (hodnoty typu String). Přestože je operátor + v nastíněných situacích pro spojení textových řetězců vhodný, doporučuji vám, abyste za tímto účelem vždy používali operátor &. Aplikace tohoto operátoru je bezproblémová, protože ještě před samotnou operací zřetězení jsou hodnoty operandů převedeny do forem textových řetězců, a to i v případě, kdy představují hodnoty jiných datových typů. 2.12.6 Bitové operátory Bitové operátory provádějí operace na příslušných bitech celočíselných hodnot. Skupinu bitových operátorů tvoří operátory And, Or, Not a Xor. Pokud říkáte, že se stejně pojmenovanými operátory jsme se setkali u logických operátorů, máte pravdu. Skutečně, Visual Basic .NET používá pro logické i bitové operátory stejné názvy, ovšem jak za chvíli uvidíte, charakter práce bitových operátorů je zcela odlišný od operací, které se svými operandy uskutečňují logické operátory. Prvním důležitým sdělením je, že bitové operace nepracují s pravdivostními hodnotami výrazů, ale s jednotlivými bity numerických hodnot. Rozsah uplatnění bitových operátorů je omezen na hodnoty celočíselných datových typů, což znamená, že tyto operátory lze apli-

100

ZÁKLADY PROGRAMOVÁNÍ V JAZYCE VISUAL BASIC .NET 2003

Ukázka elektronické knihy, UID: KOS181484


Turn static files into dynamic content formats.

Create a flipbook
Visual Basic.NET 2003 (Ukázka, strana 99) by Kosmas-CZ - Issuu