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észlet | B: fizetés | A ÉS B | A VAGY B | A kizáró VAGY B |
|---|---|---|---|---|
| Hamis | Hamis | Hamis | Hamis | Hamis |
| Hamis | Igaz | Hamis | Igaz | Igaz |
| Igaz | Hamis | Hamis | Igaz | Igaz |
| Igaz | Igaz | Igaz | Igaz | Hamis |
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.