Digitális és informatikai

ÉS, VAGY, kizáró VAGY: ellenőrizd a feltételeket igazságtáblával

Egy rendelési és egy kedvezményezési példán végigvesszük a négy alaphelyzetet. Megmutatjuk, hogyan lesz egy hibásan megírt összetett feltételből nem kívánt kiválasztás.

Dajka Gábor4 perc olvasás

Egy üzleti feltétel szöveges megfogalmazása gyakran egyértelműnek tűnik, amíg elő nem kerül egy különleges eset. Mi történjen például akkor, ha két kedvezményfeltétel egyszerre teljesül? A VAGY és a kizáró VAGY különböző eredményt ad, ezért ezt előre kell eldönteni.

A logikai kapuk kalkulátorában az igazságtábla segít az összes bemeneti állapot áttekintésében. Az alábbi példák logikai modellek: konkrét webshop vagy adatbázis programkódját nem helyettesítik.

Két feltétel, négy eset

Jelölje A, hogy a termék készleten van, B, hogy a fizetés visszaigazolt. A példabeli teljesítési szabály mindkettőt megköveteli, ezért A ÉS B a megfelelő kapcsolat.

A: készletB: fizetésA ÉS BA VAGY BA kizáró VAGY B
HamisHamisHamisHamisHamis
HamisIgazHamisIgazIgaz
IgazHamisHamisIgazIgaz
IgazIgazIgazIgazHamis

A táblázat négy sora lefedi két, egyenként kétértékű bemenet összes kombinációját. Az ÉS csak az utolsó sort fogadja el. A sima VAGY az utolsó sorban is igaz, a kizáró VAGY viszont ott hamis.

A kizáró VAGY tipikus félreértése

Tegyük fel, hogy egy saját kampánypéldában kedvezményt kap az, aki hírlevél-feliratkozó vagy meglévő ügyfél. Ha a két csoportba egyszerre tartozó személynek is jár a kedvezmény, a logikai kapcsolat VAGY.

A kizáró VAGY ezzel szemben pontosan az egyik feltételt követeli meg. Aki mindkettőt teljesíti, kiesik. Ha ez nem tudatos döntés volt, a hibás kapcsolat éppen a mindkét feltételnek megfelelő embereket zárja ki.

A feltétel szövege mellé ezért érdemes leírni a „mindkettő igaz” eset kívánt eredményét. Egyetlen konkrét ellenpélda gyakran gyorsabban megmutatja a hibát, mint a teljes kifejezés ismételt elolvasása.

Harmadik feltétel: kézi visszatartás

Jelölje C, hogy a rendelést manuálisan visszatartották. A teljesítés feltétele most: A ÉS B ÉS NEM C. A készlet és a fizetés mellett a visszatartás hiányát is ellenőrizzük.

Három kétértékű bemenethez 2³ = 8 kombináció tartozik. Ebben a modellben csak az A igaz, B igaz, C hamis sor engedi a teljesítést. Ha C igaz, a rendelés a másik két igaz feltétel ellenére sem teljesíthető.

A NEM művelet hatókörét tedd világossá. Az „A ÉS B ÉS NEM C” és a „NEM (A ÉS B ÉS C)” nagyon különböző szabály: utóbbi hét kombinációban igaz, és csak az összes bemenet igaz állapotánál hamis.

Amikor egy feltétel észrevétlenül kiesik

Vizsgáljuk az (A ÉS B) VAGY (A ÉS NEM B) kifejezést. Ha A igaz, B bármelyik értékénél az egyik zárójeles rész igaz lesz. Ha A hamis, mindkettő hamis.

Az egész kifejezés ezért egyszerűen A-val egyenértékű. A fizetési állapot a végeredményből kiesett. Ha eredetileg fizetési ellenőrzést akartál megőrizni, ez az egyszerűsítés konkrét programlogikai problémát mutat.

Az igazságtáblát úgy is használhatod, hogy a kívánt üzleti eredményt külön oszlopban rögzíted, majd minden sornál összeveted a kifejezés eredményével. Eltérő sornál már pontosan látszik a hibás helyzet.

Logikai érték és szöveg

A „hamis” szót tartalmazó szöveg nem minden programozási környezetben ugyanaz, mint a valódi logikai hamis érték. JavaScriptben például a nem üres szöveg igazként értékelődhet feltételben, akkor is, ha a tartalma „false”.

Importnál ezért a típusellenőrzés külön feladat. A hiányzó adatot, a nullát, a hamis értéket és a szöveges jelölést ne alakítsd át hallgatólagosan egymásba. A logikai modell csak akkor reprodukálható, ha a bemeneti értékek jelentése is rögzített.

Gyakori kérdések

A VAGY kizárja a két igaz feltétel esetét?

A közönséges logikai VAGY nem zárja ki. A kizáró VAGY ad hamis értéket akkor, amikor mindkét bemenet igaz.

Hány sort kell ellenőrizni négy feltételnél?

Négy kétértékű bemenethez 2⁴, azaz 16 kombináció tartozik.

Az igazságtábla önmagában üzletileg helyes szabályt ad?

A megadott szabály következményeit mutatja. A kívánt eredményt az üzleti döntésben kell meghatározni, majd a táblával ellenőrizni.

Módszertani forrás

MDN – Logikai értékek és típusok

További cikkek

Kapcsolódó olvasnivalók

Gyorskereső

Kalkulátorok és útmutatók keresése

↑↓ választásEnter megnyitásEsc bezárás