VBA negáció. Összehasonlító operátorok (Visual Basic) Alapvető VBA adattípusok

28.03.2020 hírek

jelNévLeírás
= EgyenlőIgaz értéket ad vissza, ha a bal és a jobb oldali operandus egyenlő. Vegye figyelembe, hogy ez a hozzárendelési operátor túlterhelése.
<> Nem egyenlőIgaz értéket ad vissza, ha a bal és a jobb oldali operandus nem egyenlő.
> Jobb mintIgaz értéket ad vissza, ha a bal oldali operandus nagyobb, mint a jobb oldali operandus.
< Kevesebb, mintIgaz értéket ad vissza, ha a bal oldali operandus kisebb, mint a jobb oldali operandus.
>= Több vagy egyenlőIgaz értéket ad vissza, ha a bal oldali operandus nagyobb vagy egyenlő, mint a jobb oldali operandus.
<= Kisebb vagy egyenlőIgaz értéket ad vissza, ha a bal oldali operandus kisebb vagy egyenlő, mint a jobb oldali operandus.
Is Referencia tőkeIgaz értéket ad vissza, ha a bal oldali objektumhivatkozás ugyanaz, mint a jobb oldali objektumhivatkozás. Használható a Semmivel (null objektum hivatkozás) is mindkét oldalon. Jegyzet. Az Is operátor megpróbálja mindkét operandust objektumra kényszeríteni, mielőtt végrehajtaná az összehasonlítást. Ha bármelyik oldal primitív típus vagy Olyan változat, amely nem tartalmaz objektumot (nem objektum altípust vagy vtEmpty-t), az összehasonlítás 424-es futásidejű hibát eredményez – „Objektum szükséges”. Ha valamelyik operandus egy másikhoz tartozik felület ugyanarról az objektumról, az összehasonlítás True értéket ad vissza. Ha ellenőriznie kell mind a példány érvényességét, mind a És interfész, ObjPtr(left) = ObjPtr(right) use ObjPtr(left) = ObjPtr(right) .

Megjegyzések

A VBA szintaxis lehetővé teszi az összehasonlító operátorok "láncolását", de általában ezeket a konstrukciókat kerülni kell. Az összehasonlítás mindig balról jobbra történik, egyszerre csak 2 operanduson, és minden összehasonlítás egy logikai értéket eredményez. Például a kifejezés...

A = 2: b = 1: c = 0 kif = a > b > c

Bizonyos szövegkörnyezetekben tesztként is olvasható, hogy megtudja, b a és c között van-e. A VBA-ban ezt a következőképpen értékelik:

A = 2: b = 1: c = 0 kif = a > b > c kif = (2 > 1) > 0 kif = igaz > 0 kif = -1 > 0 "CInt(igaz) = -1 kif = hamis

Az objektummal operandusként használt összes összehasonlító operátor kivételével az objektum alapértelmezett tagjának visszatérési értéke alapján kerül kiértékelésre. Ha az objektumnak nincs alapértelmezett tagja, az összehasonlítás 438-as futásidejű hibát eredményez - "Az objektum nem támogatja a tulajdonságát vagy metódusát."

Ha az objektum nincs inicializálva, az összehasonlítás 91-es futásidejű hibát eredményez - "Objektumváltozó vagy C zárolt blokkváltozó".

Ha a szó szerinti Semmit más összehasonlító operátorral is használja, mint az Is , az fordítási hibát fog eredményezni - "Az objektum érvénytelen használata".

Ha az alapértelmezett Objektum egy másik objektum, a VBA folyamatosan hívja minden következő visszatérési érték alapértelmezett elemét, amíg vagy egy primitív típust nem ad vissza, vagy egy hiba nem jelenik meg. Tegyük fel például, hogy a SomeClass-nek van egy alapértelmezett tagértéke , amely a ChildClass egy példánya a ChildValue by ChildValue taggal. Összehasonlítás...

Set x = New SomeClass Debug.Print x > 42

A következőképpen lesz besorolva:

Set x = New SomeClass Debug.Print x.Value.ChildValue > 42

Ha valamelyik operandus numerikus és egy másik operandus egy karakterlánc vagy a String altípusának változata, akkor numerikus összehasonlítás történik. Ebben az esetben, ha a karakterláncot nem lehet számra önteni, az összehasonlítás eredménye a 13-as futásidejű hiba – "Típushiba".

Ha mindkét Az operandus egy karakterlánc vagy a String altípusának változata, a karakterlánc-összehasonlítás a kódmodul paraméter-összehasonlítási paramétere alapján történik. Ezeket az összehasonlításokat karakterenként végezzük. vegye figyelembe, hogy karakterábrázolás számot tartalmazó karakterlánc, Nem megegyezik a számértékek egyeztetésével:

Public Sub Példa() Dim left As Variant Dim right as Variant left = "42" right = "5" Debug.Print left > right "Prints False Debug.Print Val(left) > Val(right) "Prints True End Sub

Emiatt a numerikus egyenlőtlenségek összehasonlítása előtt győződjön meg arról, hogy a String vagy Variant változók számokká lettek öntve.

Ha az egyik operandus egy dátum, akkor a mögöttes kettős érték numerikus összehasonlítása történik, ha a másik operandus numerikus, vagy numerikus típussá konvertálható.

Ha a másik operandus egy Karakterlánc vagy egy String altípusának Változata, amely az aktuális területi beállítás használatával egy dátumra önthető, akkor a karakterlánc a dátumra lesz öntve. Ha nem alkalmazható egy dátumra az aktuális nyelvterületen, az összehasonlítás eredménye a 13-as futásidejű hiba – "Típushiba".

Óvatosan kell eljárni a dupla vagy egyszeri értékek és a logikai értékek összehasonlításakor. Más numerikus típusoktól eltérően a nem null értékek nem tekinthetők igaznak a VBA viselkedése miatt, amikor egy összehasonlító adattípust népszerűsít a dupla lebegővel:

Nyilvános alpélda() Dim Test Dupla tesztként = 42 Debug.Print CBool(Test) "Igazt nyomtat. "Az igaz érték kettőssé kerül elő - A teszt nem kerül átadásra Boolean Debug.Print Test = True "Hamis nyomtatás" Explicit leadással: Debug.Print CBool(Test) = True "Igazt nyomtat Debug.Print CDbl(-1) = CDbl(True) "True End Sub


Operátor Szintaxis Leírás
ÉS A ÉS B Konjunkció: Ha A és B igaz, akkor igaz. Ellenkező esetben - Hamis
VAGY A VAGY B Diszjunkció: Ha bármelyik operandus igaz, akkor igaz. Ellenkező esetben - Hamis
NEM NEM A Tagadás: Ha A hamis, akkor igaz. Ellenkező esetben - Hamis
XOR A XOR B Kivétel: Ha A igaz vagy B igaz, akkor igaz. Ellenkező esetben - Hamis
EQV A EQV B Egyenértékűség: Ha A értéke megegyezik B-vel, akkor igaz. Ellenkező esetben - Hamis
MANÓ A IMP B Következmény: Ha A igaz és B hamis, akkor hamis. Különben – igaz

A logikai operátor operandusaként bármilyen érvényes kifejezést használhat, amely logikai eredménnyel rendelkezik, valamint olyan számot, amely logikai értékké konvertálható.

Egy logikai művelet eredménye egy logikai típusú érték (vagy Null, ha legalább az egyik operandus nulla).

Logikai operátor ÉS

Szintaxis:
Operandus_1 ÉS Operandus_2


Az ÉS operátor végrehajtja logikai kötőszó.

A művelet eredménye csak akkor igaz, ha mindkét operandus igaz, egyébként pedig hamis.


igazságtáblázat


Az ÉS operátor több operandushoz is használható:


(5 3) ÉS (5=6) eredmény hamis


Az operandusok számától függetlenül a logikai ÉS művelet csak akkor ad igaz eredményt, ha a kifejezés minden operandusa igaz értékre van kiértékelve. Minden más esetben az eredmény hamis lesz. Vegye figyelembe, hogy az operandusok zárójelben vannak. A VBA először kiértékeli az egyes operandusok értékét a zárójelben, majd a teljes kifejezést.

Logikai operátor VAGY

Szintaxis:
Operandus_1 VAGY Operandus_2


A VAGY operátor végrehajtja logikai diszjunkció.

A művelet eredménye igaz, ha legalább az egyik operandus igaz, egyébként pedig hamis.


igazságtáblázat


Az OR operátor több operandushoz is használható:


(5 3) VAGY (5=6) eredmény igaz


Az operandusok számától függetlenül a logikai VAGY művelet eredménye mindig igaz lesz, ha a kifejezés legalább egyik operandusa igazra értékeli. Ellenkező esetben az eredmény hamis lesz.

Az ÉS és VAGY operátorok kombinálhatók:


((5 3)) VAGY (5=6) eredmény igaz

Boole-operátor NEM

Szintaxis:
NEM operandus


A NOT operátor igen logikai tagadás.

A NOT operátor csak egy operandust használ.


igazságtáblázat


Az ÉS VAGY NEM operátorok kombinálhatók:


((5 3)) VAGY NEM (5=6) eredmény igaz

XOR logikai operátor

Szintaxis:
Operandus_1 XOR Operandus_2


Az XOR operátor végrehajtja logikai kivétel.

Ennek a műveletnek az eredménye True, ha az operandusok eltérő értékekkel rendelkeznek, egyébként pedig False.


igazságtáblázat


((5 3)) VAGY NEM (5=6) XOR (5=5) eredmény hamis

Logikai operátor EQV

Szintaxis:
Operandus_1 EQV Operandus_2


Az EQV operátor az operátor logikai egyenértékűség.

Ennek a műveletnek az eredménye igaz, ha az operandusok értéke megegyezik, ellenkező esetben False.


igazságtáblázat


((5 3)) VAGY NEM (5=6) EQV (5=5) eredmény igaz

Logikai operátor IMP

Szintaxis:
Operandus_1 IMP Operandus_2


Az IMP utasítás logikai műveletet hajt végre következményei.


igazságtáblázat


((5 3)) VAGY NEM (5=6) IMP (5=5) eredmény igaz


Az IMP logikai operátor a legkevésbé intuitív az összes logikai operátor közül. Szerencsére használatának igénye meglehetősen ritkán merül fel.


A Visual Basicben öt alapvető és fontos logikai operátor található: And, Or, Not, Xor és Eqv. Most megpróbálom elmagyarázni mindegyik szerepét!

Szóval És!
Talán ez a legegyszerűbb és legszükségesebb logikai operátor a többi között.

Segítség:
Két kifejezés konjunkciójának (logikai ÉS) eredményét adja vissza.

Szintaxis:
eredmény = kifejezés1Éskifejezés2

Azok. eredmény csak akkor lesz igaz, ha a kifejezés1ÉSkifejezés2. Az operátor által visszaadott értékeket a következő táblázat tartalmazza:

kifejezés1 kifejezés2 eredmény
Igaz Igaz Igaz
Igaz Hamis Hamis
Igaz Nulla Nulla
Hamis Igaz Hamis
Hamis Hamis Hamis
Hamis Nulla Hamis
Nulla Igaz Nulla
Nulla Hamis Hamis
Nulla Nulla Nulla

És most egy kis példa:

Képzeljük el, hogy a User_Has_Computer és User_Has_Car változók logikai értékként vannak deklarálva, és bizonyos műveletek során igaz vagy hamis értékeket vesznek fel. Beállít egy feltételt, amely ellenőrzi az alábbi értékeket:

Mi magunk emuláljuk :) - írja be valahova a következő sorokat:


Dim User_Has_Car Boolean-ként
User_Has_Computer = Igaz
User_Has_Car=Igaz

Ha User_Has_Computer and User_Has_Car Akkor
MsgBox "Szerencsés ember vagy!"
Vége Ha

Ellenőrzéskor adott állapot egy üzenet jelenik meg a képernyőn, amely bejelenti, hogy a felhasználó boldog ember, mert. neki van kocsija ÉS számítógép:-)! Most tegyen egy """ aposztrófot a harmadik vagy negyedik sor elé - írja ki a sort. Most az egyik változó alapértelmezés szerint False lesz. Most NEM jelenik meg az üzenet, mert a felhasználó nem nagyon örül, hogy van autója VAGY számítógép...

A következő operátor nem kevésbé egyszerű – Or.

Segítség:
Logikai VAGY (összeadás) műveletet hajt végre két kifejezésen.

Szintaxis:
eredmény = kifejezés1Vagykifejezés2

Az eredmény csak akkor lesz igaz, ha csak az egyik kifejezés igaz. Az operátor által visszaadott értékeket a következő táblázat tartalmazza:

kifejezés1 kifejezés1 eredmény
Igaz Igaz Igaz
Igaz Hamis Igaz
Igaz Nulla Igaz
Hamis Igaz Igaz
Hamis Hamis Hamis
Hamis Nulla Nulla
Nulla Igaz Igaz
Nulla Hamis Nulla
Nulla Nulla Nulla

És ismét egy kis példa a régi logikai változókkal User_Has_Computer és User_Has_Car, amelyek bizonyos műveletek során igaz vagy hamis értéket vettek fel.

Dim User_Has_Computer As Boolean
Dim User_Has_Car Boolean-ként
User_Has_Computer = Hamis
User_Has_Car=Igaz

Ha User_Has_Computer vagy User_Has_Car Akkor
MsgBox "Majdnem boldog ember vagy!"
Vége Ha

Ha ez a feltétel be van jelölve, egy üzenet jelenik meg a képernyőn, amely közli, hogy a felhasználó szinte boldog ember, mert. van autója, de nincs számítógépe:-|...

Nem operátor.

Segítség:
Logikai tagadási műveletet hajt végre egy kifejezésen.

Szintaxis:
eredmény = Nem kifejezés

Azok. eredmény ellentétessé válik kifejezés(kivéve Null). Az operátor által visszaadott értékeket a következő táblázat tartalmazza:

Példa:

Dim User_Has_Computer As Boolean

User_Has_Computer = Hamis

Ha nem User_Has_Computer Akkor
MsgBox "Sajnálom... :)"
Vége Ha

Elmagyarázom: az If ... akkor feltétel akkor hajtódik végre, ha valamelyik kifejezés (a helyben ...) igaz. Képzeljük el, hogy a változó User_Has_Computer = Hamis. Aztán a vonal
A Not User_Has_Computer kiértékelése igaz, és a feltétel teljesül!

XOR operátor.

Segítség:
XOR műveletet hajt végre két kifejezésen.

Szintaxis:
[eredmény =] kifejezés1 Xor kifejezés2

Ez az operátor elvileg hasonló az Or-hoz, de nem egyszerű VAGY, és az exkluzív VAGY. Ha az egyik és csak az egyik kifejezéseket igaz (igaz értéke van), eredmény igaz. És az Or operátor két igazat is elismer kifejezéseket. Eredmény

Példa:

Dim User_Has_Computer As Boolean
Dim User_Has_Car Boolean-ként
User_Has_Computer = Hamis
User_Has_Car=Igaz

Ha User_Has_Computer X or User_Has_Car Akkor
MsgBox "Szükséged van egy autóra ÉS egy számítógépre!"
Vége Ha

Itt is, csakúgy, mint az előző példában, a feltétel csak akkor teljesül, ha a User_Has_Computer karakterlánc Xor User_Has_Car igaz (= True). És akkor és csak akkor igaz, ha csak az egyik feltétel teljesül. Ha mindkettő, akkor a feltétel már nem teljesül.

Equv operátor.

Segítség:
Két kifejezés logikai egyenértékűségének tesztelésére szolgál.

Szintaxis:
eredmény = kifejezés1 Equv kifejezés2

Itt minden nagyon egyszerű: az eredmény akkor lesz igaz, ha mindkét kifejezés igaz vagy hamis. Eredmény a következőképpen van meghatározva:

Példa:

Dim User_Has_Computer As Boolean
Dim User_Has_Car Boolean-ként
User_Has_Computer = Igaz
User_Has_Car=Igaz

Ha User_Has_Computer Eqv User_Has_Car Akkor
MsgBox "Te vagy boldog vagy boldogtalan ember!"
Vége Ha

Itt a számítógép „boldognak vagy boldogtalannak” fog nevezni, mert. a feltétel csak akkor teljesül, ha a felhasználónak van gépe és számítógépe is, vagy egyik sem.

Általában az összehasonlító műveleteket ciklusos utasításokban használjuk, hogy döntést hozzunk a műveletek további menetéről.

Minden összehasonlítási művelet eredménye egy logikai érték: igaz, hamis.

Ha egy összehasonlítási kifejezésben mindkét operandus azonos adattípusú, a VBA egyszerű összehasonlítást hajt végre ezen a típuson.

Ha egy összehasonlító kifejezésben mindkét operandusnak van meghatározott típusa, és ezek a típusok nem kompatibilisek, a VBA típushibát ad ki.

Ha az összehasonlítási kifejezésben az egyik vagy mindkét operandus Variant típusú változó, a VBA megpróbálja átalakítani a Variant típust valamilyen kompatibilis típusra.

String összehasonlítás

Amikor a karakterláncokat relációs operátorokkal hasonlítja össze, a VBA karakterenként összehasonlítja az egyes karakterláncokat balról jobbra.

A VBA-ban az egyik karakterlánc csak akkor egyenlő a másikkal, ha mindkét karakterlánc pontosan ugyanazokat a karaktereket tartalmazza, pontosan ugyanabban a sorrendben, és mindkét karakterlánc azonos hosszúságú. Például az "abcd" "abcd" "abcd" karakterláncok nem egyenlőek egymással, mert A VBA nem hagyja figyelmen kívül a kezdő és a záró szóköz karaktereket a karakterláncok összehasonlításakor.

Legyen óvatos, amikor változó hosszúságú karakterláncokat hasonlít össze.

Bináris és szöveges karakterláncok összehasonlítása

A szöveg tárolására a számítógép olyan sémát használ, amelyben minden megjelenített karakter egyedi számmal rendelkezik. Az ábécé minden betűjének megvan a sajátja egyedi számok. Általában levelek nagybetűs kisebb számokat tartalmaznak, mint a kisbetűket. Egy bizonyos betűnek vagy szimbólumnak megfelelő számot hívnak karakter kód.

Ha bináris összehasonlítást végez egy karakterláncon VBA információ minden karakterhez egy szám bináris megfelelőjét használja. Ezt az összehasonlítási módszert ún bináris vagy binárisés ez az alapértelmezett összehasonlítási módszer.

Mert a nagybetűknek kisebb bináris számok vannak, a nagybetűk ábécé sorrendben vannak a kisbetűk előtt. Ezért a karakterláncok bináris összehasonlításakor az "ABC" karakterlánc kisebb lesz, mint az "abc" karakterlánc.


A karakterláncok szöveges összehasonlításakor a VBA nem használja a karakterek bináris megfelelőjét, és nem tesz különbséget a kis- és nagybetűk között. Szöveges összehasonlításban az "abc" karakterlánc egyenlő az "ABC" karakterlánccal.

Az Option Compare direktíva a karakterlánc-összehasonlítási módszer kiválasztására szolgál.


Opció Összehasonlítás


Ennek az irányelvnek a modul deklarációs hatókörében kell lennie.

Karakterlánc összefűzése

Az egyik karakterlánc egy másikhoz való összekapcsolását hívják karakterlánc összefűzés.

A karakterlánc-összefűzést általában különböző forrásokból származó karakterláncok létrehozására használják egy üzenet megjelenítésére szolgáló eljárás során. A VBA-nak két karakterlánc-összefűzési operátora van.

Összefűzési operátor (&)

A (&) operátor a VBA-ban csak karakterlánc-összefűzéshez használható.

Szintaxis


Operandus_1 & Operandus_2 [& Operandus_3..]


Az operandus_N bármely érvényes karakterlánc vagy numerikus kifejezés (amely karakterláncsá konvertálódik).

A karakterlánc-összefűzés eredményének adattípusa String.

Ha egy karakterlánc-összefűzési kifejezésben az operandus üres vagy nulla, a VBA ezt az operandust nulla hosszúságú karakterláncként értelmezi (karaktereket nem tartalmazó karakterláncként).

Jegyzet! Az összefűzési művelet szimbólumát (&) szóközzel kell elválasztani a változó nevétől, mert ellenkező esetben a VBA ezt a karaktert hosszú típusú definíciós karakterként értelmezheti.

Összeadás operátor karakterlánc-összefűzésben

A (+) operátort is használhatja a karakterláncok összefűzésére.

Ennek az operátornak ugyanaz a szintaxisa és követelményei, mint az (&) operátornak. Azonban meg kell érteni, hogy a VBA-ban a (+) operátor fő célja az aritmetikai összeadás. Ezért a programkód félreérthető olvasásának elkerülése érdekében erősen ajánlott az operátor (&) használata a karakterlánc-összefűzéshez.

Működési prioritások

A programkódban szereplő kifejezések közül sok összetett (összetett), pl. két vagy több kifejezésből áll.

Az összetett kifejezések kiértékelésekor a VBA a következő szabályokat követi:

  • A kifejezések zárójelbe tett részei mindig először kerülnek kiértékelésre;
  • Az operátori hierarchiától függően bizonyos műveleteket hajtanak végre (az alábbi táblázat);
  • Ha az operátorok hierarchiája egyenlő, akkor a rendszer balról jobbra értékeli őket.
Operátor

Az összes aritmetikai operátor részletes leírása itt található, összehasonlító operátorok, logikai és összefűzési operátorok. Megpróbáltam mindent összegyűjteni, amit ezekről az operátorokról tudni lehet. Minden operátorhoz tartozik egy példa. A leírásokat a szabványos súgóból fordítottam "a VB5.

Aritmetikai operátorok

^ operátor (hatványozás)

Ez az operátor egy szám hatványra emelésére szolgál.

Szintaxis:

eredmény = szám^fokozat

Lehetőségek:

eredmény
szám
fokozat- kötelező; bármilyen numerikus kifejezés

Megjegyzések:

szám csak akkor lehet negatív fokozat egy egész szám. Ha több ^ operátort használunk ugyanabban a kifejezésben, akkor az értékelés balról jobbra történik. Általában az eredmény típusa Double. Ha azonban ill fokozat, vagy szám- Akkor nulla kifejezés eredmény Null is.

Példa:

Homályos MyValue
A MyValue = 2^2" 4-et ad vissza.
MyValue = 2^3^3" vissza fog térni 512 (2^3=8, 8^3=512)
SajátÉrték=(-5)^3" vissza fog térni -125.

Tanács:

Ha egy számot állandó hatványra kell emelnie, akkor jobb, ha több operátort - szorzást, mint egy - hatványozást használ, ítélje meg maga, egy millió ciklus telik el az átadott kifejezés kiszámításával:

teszt1 = 2^8" 893 ms
teszt1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 " 130 ms!

operátor * (szorzás)

Két szám szorzására szolgál.

Szintaxis:

eredmény = szám1* 2. számú

Lehetőségek:

eredmény- kötelező; bármely numerikus változó
szám1- Feltétlenül; bármilyen numerikus kifejezés
2. számú- Feltétlenül; bármilyen numerikus kifejezés

Megjegyzések:

Az eredmény adattípusa általában megegyezik a két szám legpontosabb típusával. A pontosság sorrendje a legnagyobbtól a legkisebbig: Byte, Integer, Long, Single, Currency, Dupla, Tizedes. Igaz, vannak kivételek:

  • Ha az Single-t és a Long-ot megszorozzuk, akkor az eredmény Dupla
  • Ha az adattípus eredmény- Hosszú szingli vagy dátum, amely nem tartalmazza magának a kifejezésnek az eredményét, majd az eredményt egy Double-t tartalmazó Variánssá alakítjuk.

Ha szám1 vagy 2. számú

A szorzás pontossági sorrendje eltér az összeadásnál és kivonásnál használtaktól.

Példa:

Homályos MyValue
MyValue = 2 * 2" 4-et ad vissza.
MyValue = 459,35 * MyValue " Visszatér: 495,35 * 4

operátor / (részleg)

Két szám elosztására szolgál, és lebegőpontos eredményt kapunk.

Szintaxis:

eredmény = szám1 / 2. számú

Lehetőségek:

eredmény- kötelező; bármely numerikus változó
szám1- Feltétlenül; bármilyen numerikus kifejezés
2. számú- Feltétlenül; bármilyen numerikus kifejezés

Megjegyzések:

Eredményáltalában Double típusú. Igaz, vannak kivételek:

  • Ha mindkét kifejezés Byte, Integer, Single típusú, akkor az eredmény Single. Ha azonban a kifejezés méretei nem férnek bele a Single hatókörébe, hiba történik.
  • Ha mindkét kifejezés Variant típusú, amely Byte-ot, Integer-t vagy Single-t tartalmaz, akkor az eredmény egy Single Variant. Ha azonban a kifejezés méretei nem férnek bele a Single hatókörébe, akkor a Double Variant.
  • Ha az egyik szám Decimális típusú, akkor az eredmény Decimális.

Ha szám1 vagy 2. számú- Null, egyszerűen normál 0-ként értelmezhető.

Példák:

Homályos MyValue
MyValue = 10/4" !} vissza fog térni 2.5.
MyValue = 10/3" vissza fog térni 3.333333.

operátor \ (egész osztás)

Két szám elosztására szolgál, és egész számot kapunk.

Szintaxis:

eredmény = szám1 \ 2. számú

Lehetőségek:

eredmény- kötelező; bármely numerikus változó
szám1- Feltétlenül; bármilyen numerikus kifejezés
2. számú- Feltétlenül; bármilyen numerikus kifejezés

Megjegyzések:

Mielőtt egy ilyen felosztás megtörténne, a kifejezések bájtokra, egészekre vagy hosszú kifejezésekre kerekednek. Az eredmény adattípusa általában Byte, Byte variáns, Integer, Integer variáns, Long vagy Long variáns. Bármely törtrész csonka.

Ha azonban bármelyik kifejezés Null, akkor az eredmény Null. Minden üres kifejezést tartalmazó kifejezés 0-ként értelmeződik.

Példák:

Homályos MyValue
MyValue=11\4" vissza fog térni 2.
MyValue=9\3" vissza fog térni 3.
MyValue=100\3" vissza fog térni 33.

Mod operátor (a részleg többi része)

Két szám felosztására és az osztás maradékának kiszámítására szolgál.

Szintaxis:

eredmény = szám1 Mod 2. számú

Lehetőségek:

eredmény- kötelező; bármely numerikus változó
szám1- Feltétlenül; bármilyen numerikus kifejezés
2. számú- Feltétlenül; bármilyen numerikus kifejezés

Megjegyzések:

Osztáskor a ponttal ellátott számok kerekítésre kerülnek. Például a következő kifejezés eredménye 5:

A=19 Mód 6.7

Mi folyik itt? Először a 6,7-et felkerekítjük 7-re. Ezután megtörténik az osztás, 2,7-et kapunk.... Az osztás maradéka = 5. (2 * 7 = 14, 19 - 14 = 5).

Az eredmény általában Byte, Byte variáns, Integer, Integer variáns, Long vagy Variant típusú, amely hosszúságot tartalmaz.

Ha bármelyik kifejezés Null, akkor az eredmény Null. Minden üres kifejezést tartalmazó kifejezés 0-ként értelmeződik.

Példák:

Homályos Saját Eredmény
MyResult = 10 Mod 5" vissza fog térni 0.
MyResult = 10 Mod 3" vissza fog térni 1.
MyResult=12 Mod 4.3" vissza fog térni 0.
MyResult = 12,6 Mod 5" vissza fog térni 3.

operátor + (kiegészítés)

Két szám hozzáadására szolgál.

Szintaxis:

eredmény = kifejezés1+kifejezés2

Lehetőségek:

eredmény- kötelező; bármely numerikus változó
kifejezés1
kifejezés2- Feltétlenül; bármilyen kifejezést

Megjegyzések:

Amikor a + operátort használja, nem tudja meghatározni, hogy mi történjen, összeadás vagy karakterlánc-összefűzés. Az összefűzéshez használja a & operátort a félreértések elkerülése és a kód olvashatóbbá tétele érdekében.

Ha az egyik kifejezés nem Változat, akkor a következő szabályok érvényesek:

  • Ha mindkét kifejezés numerikus típusú (Bájt, Logikai, Integer, Long, Single, Double, Date, Currency vagy Decimális), akkor hozzáadódnak.
  • Ha mindkét karakterlánc kifejezés összefűzés.
  • Ha az egyik kifejezés numerikus típusú, a másik pedig bármilyen Variant értéket tartalmaz, beleértve a Null értéket is, akkor összeadás történik.
  • Ha az egyik kifejezés egy karakterlánc, a másik pedig bármilyen Variant érték, akkor összefűzés történik.
  • Ha az egyik kifejezés üres értéket tartalmaz, akkor a második, módosítatlan kifejezés kerül visszaadásra.
  • Ha az egyik kifejezés numerikus típusú, a másik pedig egy karakterlánc, akkor Típushibás hiba lép fel.
  • Ha bármely kifejezés Null, akkor az eredmény is Null.

Ha mindkét kifejezés Változat, akkor a következő szabályok érvényesek:

  • Ha mindkét kifejezés szám, akkor összeadódnak.
  • Ha mindkét kifejezés karakterlánc, akkor összefűzve vannak.
  • Ha az egyik kifejezés egy szám, a másik pedig egy karakterlánc, akkor összeadás történik.

Normál összeadás esetén az eredmény adattípusa általában megegyezik a két szám legpontosabb típusával. A pontosság sorrendje: Byte, Integer, Long, Single, Double, Currency és Decimális. Vannak kivételek:

  • Ha összeadjuk a Single-t és a Long-ot, akkor az eredmény Dupla
  • Ha egy Dátum típusú kifejezést hozzáadunk bármely más kifejezéshez, az eredmény egy dátum.

Ha az egyik vagy mindkét kifejezés Null, akkor az eredmény is Null. Ha mindkét kifejezés üres értéket tartalmaz, az eredmény egész szám. Ha csak egy van, akkor eredményként a módosítatlan második kifejezés kerül visszaadásra.

Példák:

Homályos Saját Szám, Var1, Var2
Saját Szám = 2 + 2" vissza fog térni 4.
Saját Szám = 4257,04 + 98112" vissza fog térni 102369.04.

var1="34"
Var2 = 6 "Inicializálja a vegyes változókat
Saját Szám = Var1 + Var2" vissza fog térni 40.

var1="34"
Var2="6" " Inicializálja a változókat karakterláncokkal
Saját Szám = Var1 + Var2" vissza fog térni"346" (megtörtént
"összefűzés, nem összeadás!").

Tanács:

Az összeadás (+) operátor használható dátumok hozzáadására, pl. Dátum típusú változók:

Dim d Dátumként
d = Sorozat dátuma(2002, 8, 15) " inicializálás dátuma 2002.08.15
d=d+15 " most d a 2002.08.30. dátumot tartalmazza
"Azaz hozzáadtunk 15 napot

operátor - (kivonás, előjelváltás)

Két szám közötti különbség megállapítására vagy egy kifejezés előjelének megváltoztatására szolgál.

Szintaxis:

eredmény = kifejezés1- kifejezés2

-kifejezés

Lehetőségek:

eredmény- kötelező; bármely numerikus változó
kifejezés- Feltétlenül; bármilyen kifejezést
kifejezés1- Feltétlenül; bármilyen kifejezést
kifejezés2- Feltétlenül; bármilyen kifejezést

Megjegyzések:

Az első szintaxisban a "-" operátor szükséges a két szám közötti különbség megtalálásához. A második szintaxisban a "-" az y előjelének megváltoztatására szolgál kifejezéseket.

Az eredmény adattípusa általában megegyezik a két szám legpontosabb típusával. A pontosság sorrendje: Byte, Integer, Long, Single, Double, Currency és Decimális. Vannak kivételek:

  • Ha a kivonás az Single és Long típusokat tartalmazza, akkor az eredmény Dupla
  • Ha a kivonás Date típusú kifejezést használ,
    akkor az eredmény a Dátum.
  • Két dátum kivonása duplát eredményez.

Ha az egyik vagy mindkét kifejezés Null, akkor az eredmény is Null. Ha az egyik kifejezés üres, akkor azt 0-ként értelmezi.

Az összeadás és a kivonás pontossági sorrendje eltér a szorzásnál használttól.

Példák:

Homályos Saját Eredmény
Saját eredmény = 4-2" vissza fog térni 2.
Saját Eredmény = 459,35 - 334,90" vissza fog térni 124.45.

Tanács:

Az összeadás operátorhoz hasonlóan a kivonási operátor is használható két dátum közötti különbség (napokban) kiszámítására:

Dim d1 Dátumként
Dim d2 As Date
Dim más, amíg
d1 = Sorozat dátuma(1983, 10, 14)
d2 = Sorozat dátuma(2002, 8, 15)
razn = d2 - d1 " különbség napokban (6880).

Összehasonlító operátorok

Néhány kifejezés összehasonlítására szolgál. 3 szintaxisuk van:

Szintaxis:

eredmény = kifejezés1 összehasonlító operátor kifejezés2
eredmény = tárgy1 Is tárgy2
eredmény = vonal Mint minta

Lehetőségek:

eredmény kívánt; bármely numerikus változó
kifejezés Szükségszerűen; bármilyen kifejezést
összehasonlító operátor kívánt; bármely összehasonlító operátor
egy tárgy kívánt; bármely objektum neve
vonal kívánt; bármilyen karakterlánc kifejezést.
minta kívánt; bármilyen karakterlánc kifejezés vagy betűk és számok tartománya

Megjegyzések:

A következő táblázat tartalmazza az összehasonlító operátorok listáját és azokat a feltételeket, amelyek alapján a kifejezés eredménye meghatározható (igaz vagy hamis).

Operátor

igaz ha

Hamis, ha

Null ha

< (меньше чем) kifejezés1 <
kifejezés2
kifejezés1 >=
kifejezés2

egy
tól től
kifejezés nullát tartalmaz

<= (меньше или равно) kifejezés1 <=
kifejezés2
kifejezés1 >
kifejezés2
> (nagyobb mint) kifejezés1 >
kifejezés2
kifejezés1 <=
kifejezés2
>= (nagyobb vagy egyenlő) kifejezés1 >=
kifejezés2
kifejezés1 <
kifejezés2
= (egyenlő) kifejezés1 =
kifejezés2
kifejezés1 <>
kifejezés2
<>(nem egyenlő) kifejezés1 <>
kifejezés2
kifejezés1 =
kifejezés2

Az Is és Like operátorok meghatározott funkciókat hajtanak végre, és összehasonlító táblázatuk eltér a bemutatotttól (az alábbiakban ezeket nézzük meg).

Amikor két kifejezést hasonlítanak össze, nem mindig lehet meghatározni, hogy az összehasonlítás számok vagy karakterláncok lesznek. Az alábbiakban bemutatjuk, hogy a rendszer hogyan számítja ki az eredményt, ha mindkét kifejezés más típusú, mint a Variant:

  • Ha mindkét kifejezés szám (byte, logikai, egész, hosszú, egyszeri, dupla, dátum, pénznem vagy tizedes), akkor a számok összehasonlítása történik.
  • Ha mindkét kifejezés karakterlánc, akkor karakterlánc-összehasonlítás történik. (a kisebb karakterlánc az, amelynek első és azt követő betűje kisebb ASCII-kóddal rendelkezik).
  • Ha az egyik kifejezés egy szám, a másik pedig egy Változat, amely számként értelmezhető, akkor a számok összehasonlításra kerülnek.
  • Ha az egyik kifejezés egy szám, a másik pedig egy Variant karakterlánc, amely nem értelmezhető számként, akkor hiba történik (Típushiba).
  • Ha az egyik kifejezés egy karakterlánc, a másik pedig egy tetszőleges Variant érték (akár nulla), akkor karakterlánc-összehasonlítás történik.
  • Ha az egyik kifejezés üres, a másik pedig egy szám, akkor a számok összehasonlítása történik, ahol az Üres értéket 0-ként kezeljük.
  • Ha az egyik kifejezés Üres, a másik pedig egy karakterlánc, akkor egy karakterlánc-összehasonlítás történik, ahol az Ürest a "" üres karakterláncként kell kezelni.

Ha az első és a második kifejezés is Variant típusú, akkor a kifejezések összehasonlítása a Változatban található adattípusok szerint történik:

  • Ha mindkét Variant kifejezés tartalmaz számokat, akkor a számok összehasonlításra kerülnek.
  • Ha mindkét Variant kifejezés tartalmaz karakterláncokat, akkor a karakterláncok összehasonlításra kerülnek.
  • Ha az egyik Variant kifejezés egy számot, a másik pedig egy karakterláncot tartalmaz, akkor a numerikus kifejezés kisebb, mint a karakterlánc kifejezés.
  • Ha az egyik Variant kifejezés üres, a másik pedig egy szám, akkor az Üres értéket 0-ként kezeli.
  • Ha az egyik Variant kifejezés Üres, a másik pedig egy karakterlánc, akkor az Üres karakterlánc üres "" karakterláncként lesz kezelve.
  • Ha mindkét kifejezés üres, akkor egyenlőként kezeljük őket.

Amikor egy Single változót hasonlítanak össze egy Double-vel, a Double-t a Single pontosságára kerekítik.

Ha a valutát egy vagy dupla pénznemhez hasonlítja, akkor az egyszeri vagy kettős pénznemre konvertálódik. Hasonlóképpen, ha a tizedesjegyet egy vagy duplával hasonlítja össze, akkor az egyszeres vagy dupla tizedesjegyekké alakul át. Pénznem esetén a 0,0001-nél kisebb töredékek elveszhetnek. Decimális esetén ez az érték 1E-28, különben hiba léphet fel. Így a törtrész elvesztésével a kifejezések egyenlőnek értelmezhetők, bár valójában egyik a másiktól eltérő lesz. (bár kicsi).

Példák:

Homályos MyResult, Var1, Var2
Saját Eredmény = (45< 35) " vissza fog térni Hamis.
Saját Eredmény = (45 = 45)" vissza fog térni igaz.
Saját Eredmény = (4<> 3) " vissza fog térni igaz.
MyResult = ("5" > "4")" vissza fog térni igaz.

Var1="5": ​​​​Var2=4 " VB-ben használhat kettőspontot,
" külön operátorokhoz.

Saját Eredmény = (Var1 > Var2)" vissza fog térni igaz.

Var1=5: Var2= Üres
Saját Eredmény = (Var1 > Var2)" vissza fog térni igaz.

Var1 = 0: Var2 = Üres
MyResult = (Var1 = Var2)" vissza fog térni igaz.

összehasonlító operátor Is

Ez az operátor az objektumváltozók összehasonlítására szolgál.

Ennek az operátornak a szintaxisa fent található.

Megjegyzések:

Ha az objektum1 és az objektum1 ugyanarra az objektumra hivatkoznak, akkor az eredmény igaz, ha nem, akkor hamis. Két változó többféleképpen is hivatkozhat ugyanarra az objektumra. A következő példában A ugyanarra az objektumra utal, mint B:

Állítsd be: A=B

A következő példa azt teszi lehetővé, hogy az A és B változó ugyanarra a C objektumra hivatkozzon:

Állítsd be: A = C
SetB=C

Példák:

Homályos MyObject, YourObject, ThisObject, _
OtherObject, ThatObject, MyCheck

Set YourObject = MyObject " objektumhivatkozások létrehozása
Set ThisObject = MyObject
Állítsa be a ThatObject = OtherObject értéket
MyCheck = YourObject Is ThisObject " True értéket ad vissza.
A MyCheck = ThatObject Is ThisObject " False értéket ad vissza.
"Feltételezzük, hogy a MyObject<>OtherObject
MyCheck = MyObject Is ThatObject " Hamis értéket ad vissza.

karakterlánc-összehasonlító operátor – Tetszik

A Like string összehasonlító operátor a karakterláncok összehasonlítására szolgál.

Ennek az operátornak a szintaxisát fentebb már tárgyaltuk.

Megjegyzés:

Ez az operátor használható egy karakterlánc tesztelésére a minta maszk ellen. Ez egy nagyon erős operátor, majdnem analóg reguláris kifejezések a Perlben.

Tehát ez az operátor a következőképpen működik. Ha a karakterlánc egyezik a maszkkal, akkor az eredmény igaz. Ha nem - hamis. Ha az egyik kifejezés Null, akkor az eredmény is Null.

A Like operátor viselkedése a karakterlánc-összehasonlítás alapértelmezett típusától függ. (Opció Összehasonlítási nyilatkozat).

Ha a Bináris típus be van állítva (azaz bináris összehasonlítás), akkor a karakterláncok Ascii kódjaik alapján kerülnek összehasonlításra (különböző kódolásokban eltérő). Általában a következő sorrendet használják:

A< B < E < Z < a < b < e < z < А < К < Я < а < к < я

Ha a típus beállítása Szöveg (szöveg-összehasonlítás). Egy ilyen összehasonlítással a sorrend eltér az előzőtől, itt a nagy és a kis betűk egyenlőek:

(A=a)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

A legtöbb fő funkció A Like operátor egy teszt annak megállapítására, hogy egy karakterlánc egy maszkhoz tartozik-e. A maszkban a következő különlegességek használhatók. karakterek:

Bármelyik karakter
* Nulla vagy több karakter
# Bármely számjegy (0-9).
Bármelyik karakter a charlistban
[!charlist] Bármely olyan karakter, amely nem szerepel a charlistban

Íme egy kis megjegyzés. Annak érdekében, hogy ellenőrizze egy karakterlánc tulajdonjogát egy speciálisat tartalmazó maszkon. szimbólumokat (azaz ellenőrizze például, hogy vannak-e [,?,#,],* szimbólumok a karakterláncban), akkor be kell zárnia a következőt: szögletes zárójelek. Nem lehet csak úgy külön zárójelet [ vagy ] tenni.

A karakterlista megadásakor kötőjelet (-) használhat. Például egy A-tól Z-ig terjedő sorozat megadásához maszkot kell használni. A zárójelben lévő szöveg nem tartalmazhat elválasztót (szóköz, vessző stb.), különben ezek is szerepelni fognak a sorrendben.

A maszk érvényesítésének további fontos szabályai is vannak:

  • (!) jel a karakterlista elején azt jelzi, hogy olyan karaktereket kell keresni, amelyek nem szerepelnek ebben a listában. Ha meg kell találni magát a jelet!, akkor zárójeleket kell tenni [!].
  • A (–) karaktertartomány megadására szolgál.
  • Karaktertartomány megadásakor növekvő ASCII-kódoknak kell lenniük. Azok. helyes maszk, de nem.
  • A sorozat a "" üres karakterláncként értelmeződik.

Példák:

Homályos MyCheck
MyCheck = "aBBBa" Mint "a*a" " Igazat ad vissza.
MyCheck = "F" Like "" " Igazat ad vissza.
MyCheck = "F" Mint "[!A-Z]" " Hamis értéket ad vissza.
MyCheck = "a2a" Mint "a#a" " Igazat ad vissza.
MyCheck = "aM5b" Mint az "a#[!c-e]" " Igaz értéket ad vissza.
MyCheck = "BAT123khg" Mint "B?T*" " Igazat ad vissza.
MyCheck = "CAT123khg" Mint "B?T*" " Hamis értéket ad vissza.

myString = "312T-87GD-8922"

Ha myString Mint a "###-##-####", majd...

Karakterlánc-összefűzési operátorok

Valójában mindössze 2 operátort használhat karakterláncok összekapcsolására a Visual Basicben. Ez & és +. A + operátort fentebb leírtuk. Beszéljünk a & operátorról.

karakterlánc-összefűzési operátor - &

Két kifejezés összefűzésére szolgál.

Szintaxis:

eredmény = kifejezés1 & kifejezés2

eredmény kívánt; Bármely karakterlánc vagy variáns változó
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés

Megjegyzések:

Ha a kifejezés nem karakterlánc, akkor karakterlánc-változattá alakítja. Az eredmény adattípusa csak akkor String, ha mindkét kifejezés String típusú. Ellenkező esetben az eredmény String Variant. Ha mindkét kifejezés nulla, akkor az eredmény is Null. Ha azonban csak az egyik kifejezés tartalmazza null érték, akkor az üres "" karakterláncként értelmeződik. Az üres karakterlánc üres ""-ként is értelmezhető.

Példák:

Homályos MyStr
MyStr = "Hello" és "World"
" vissza fog térni karakterlánc "Hello World".
MyStr = "Check" & 123 & "Check"
" A "Verify 123 Verify" karakterláncot adja vissza.

Logikai operátorok

Ez az operátorok legérdekesebb csoportja. Programozáskor ismernie kell a munkájukat és az alkalmazásukat (és nem csak a Visual Basicben).

Ebből 6 van a Visual Basicben. Vizsgáljuk meg részletesen az egyes operátorokat.

És operátor

Két kifejezés logikai szorzására szolgál.

Szintaxis:

eredmény = kifejezés1És kifejezés2

eredmény
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés

Megjegyzések:

A következő táblázat az And operátor működését mutatja be:

Ha kifejezés1 =

, és kifejezés2 =

Az eredmény =

Igaz Igaz Igaz
Igaz Hamis Hamis
Igaz Nulla Nulla
Hamis Igaz Hamis
Hamis Hamis Hamis
Hamis Nulla Hamis
Nulla Igaz Nulla
Nulla Hamis Hamis
Nulla Nulla Nulla

Az And operátort egy szám bitjeinek tesztelésére is használják. Biteknél az And operátor így működik (nézz balról jobbra)

0 0 0
0 1 0
1 0 0
1 1 1

Példák:

Homályos A, B, C, D, MyCheck
MyCheck=A>B és B>C" vissza fog térni igaz.
MyCheck=B>A és B>C" vissza fog térni Hamis.
MyCheck=A>B és B>D" vissza fog térni Nulla.
MyCheck = A és B" vissza fog térni8 (bit összehasonlítás).

Nézzük meg közelebbről az utolsó példát. A 10-es szám bitekben a következőképpen van ábrázolva (tetradként, azaz 4 biten):

A 8-as szám pedig így néz ki:

Az And operátor működésének eredményeként a fenti táblázat szerint a következőket kapjuk:

Azok. 8. Miért tettük ezt? Ezt azért tettük, hogy ellenőrizzük, hogy az A szám negyedik bitje be van-e állítva? Miután megkaptuk a B-t, megbizonyosodtunk arról, hogy ez a bit be van állítva.

Vagy operátor

Két kifejezés logikai összeadására szolgál.

Szintaxis:

eredmény = kifejezés1 Vagy kifejezés2

eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés

Megjegyzések:

Az alábbi táblázat az Or operátor működését mutatja be:

Ha kifejezés1 =

, és kifejezés2 =

Az eredmény =

Igaz Igaz Igaz
Igaz Hamis Igaz
Igaz Nulla Igaz
Hamis Igaz Igaz
Hamis Hamis Hamis
Hamis Nulla Nulla
Nulla Igaz Igaz
Nulla Hamis Nulla
Nulla Nulla Nulla

Az Or operátor egy szám bizonyos bitjeinek beállítására szolgál. Biteknél az Or operátor a következőképpen működik (nézzen balról jobbra)

0 0 0
0 1 1
1 0 1
1 1 1

Az eredmény kiemelve kiemelten.

Példák:

Homályos A, B, C, D, MyCheck
MyCheck=A>B vagy B>C" vissza fog térni igaz.
MyCheck=B>A vagy B>C" vissza fog térni igaz.
MyCheck=A>B vagy B>D" vissza fog térni igaz.
MyCheck=B>D vagy B>A" vissza fog térni Nulla.
MyCheck = A vagy 5" vissza fog térni 15:

Nézzük meg közelebbről az utolsó példát. A 10-es szám bitekben a következőképpen van ábrázolva (tetradként, azaz 4 biten):

És az 5-ös szám:

Az Or operátor működése eredményeként a fenti táblázat szerint a következőt kapjuk:

Azok. 15. Amint látja, az Or operátor nagyon könnyen és kényelmesen használható nemcsak összehasonlító kifejezésekben, hanem egy szám bizonyos bitjeinek beállítására is.

Xor operátor

Két kifejezés logikai tagadásának végrehajtására szolgál.

Szintaxis:

eredmény = kifejezés1 Xor kifejezés2

eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés

Megjegyzések:

Az alábbi táblázat az Xor operátor működését mutatja be:

Az Xor operátor egy szám bizonyos bitjeinek invertálására szolgál. Biteknél az Xor operátor így működik (nézz balról jobbra)

0 0 0
0 1 1
1 0 1
1 1 0

Az eredmény félkövéren van szedve. Az Xor csak abban különbözik az Or-tól, hogy ha mindkét bit 1, az Xor 0-t ad. Az Xor operátor érdekessége, hogy kétszer alkalmazva ugyanazt a számot állítja elő. Ezt gyakran használják a kriptográfiában.

Példák:

Homályos A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Xor B>C" vissza fog térni Hamis.
MyCheck=B>A Xor B>C" vissza fog térni igaz.
MyCheck=B>A Xor C>B" vissza fog térni Hamis.
MyCheck=B>D Xvagy A>B" vissza fog térni Nulla.
MyCheck=A Xor B" vissza fog térni 2

Érdekes példa Az Xor operátor használata két numerikus változó értékének cseréjére szolgál:

Dim a Amíg , b Ameddig
a = 4
b = 7
a = a Xor b
b = a Xor b
a = a Xor b

Most az a változó tartalmazza a b változó értékét, és fordítva.

nem operátor

Két kifejezés logikai megfordítására szolgál.

Szintaxis:

eredmény= Nem kifejezés

eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés Szükségszerűen; Bármilyen kifejezés

Megjegyzések:

Az alábbi táblázat a Not operátor működését mutatja be:

A Not operátor minden bitet invertál. kifejezéseket. Biteknél a Not operátor így működik (balról jobbra nézve):

0 1
1 0

Az eredmény félkövéren van szedve.

Példák:

Homályos A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck = Nem(A>B)" vissza fog térni Hamis.
MyCheck = Nem (B>A)" vissza fog térni igaz.
MyCheck = Nem(C>D)" vissza fog térni Nulla.
MyCheck = nem A" vissza fog térni-11 (minden bit fordított)

Nézzük meg közelebbről az utolsó példát. A 10-es szám a következőképpen jelenik meg bitként (byteként, azaz 8 bitként):

Az összes bit invertálása után a következőket kapjuk:

Ez pedig -11.

Eqv operátor

Két kifejezés közötti logikai ekvivalencia végrehajtására szolgál.

Szintaxis:

eredmény = kifejezés1 Equv kifejezés2

eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés

Megjegyzések:

Az alábbi táblázat az Eqv operátor működését mutatja be:

Biteknél az Eqv operátor a következőképpen működik (nézzen balról jobbra)

0 0 1
0 1 0
1 0 0
1 1 1

Példák:

Homályos A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Eqv B>C" vissza fog térni igaz.
MyCheck=B>A egyenlet B>C" vissza fog térni Hamis.
MyCheck=A>B Eqv B>D" vissza fog térni Nulla.
MyCheck = A Equv B " vissza fog térni -3

imp operátor

Két kifejezés logikai következtetésére szolgál.

Szintaxis:

eredmény = kifejezés1 manó kifejezés2

eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés

Megjegyzések:

Az alábbi táblázat az Imp operátor működését mutatja be:

Ha kifejezés1 =

, és kifejezés2 =

Az eredmény =

Igaz Igaz Igaz
Igaz Hamis Hamis
Igaz Nulla Nulla
Hamis Igaz Igaz
Hamis Hamis Igaz
Hamis Nulla Igaz
Nulla Igaz Igaz
Nulla Hamis Nulla
Nulla Nulla Nulla

Biteknél az Imp operátor így működik (nézz balról jobbra)

0 0 1
0 1 1
1 0 0
1 1 1

Példák:

Homályos A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Imp B>C" vissza fog térni igaz.
MyCheck=A>B Imp C>B" vissza fog térni Hamis.
MyCheck=B>A Imp C>B" vissza fog térni igaz.
MyCheck=B>A Imp C>D" vissza fog térni igaz.
MyCheck=C>D Imp B>A" vissza fog térni Nulla.
MyCheck=B Imp A" Visszatér -1