Döntési fa

Ha a program több mint két feltételes eredményt vár el, akkor egymásba ágyazhatjuk egy if-else elágazás sorozatot, hogy megkapjuk a kívánt eredményt.

22. ábra


Mint látható a fenti ábrán a döntési fa minden feltételes elágazása ("if-else"), ezért a további döntési lehetőségünk attól függ, hogy mi volt a korábbi döntésünk. Vegyünk egy hétköznapi példát: ha éhes vagyok, elmegyek ebédelni, ha nem vagyok éhes ("else"), maradok és folytatom a munkát. Ha ebédelek, eldöntöm, hogy melyik étteremben fogok enni - de ezt a döntést csak akkor lehet meghozni, ha már úgy döntöttem, hogy elmegyek ebédelni, és így tovább.

Az egyes logikai kifejezéseket jelöljük p és q betűkkel: így már komplexebb döntéseket is meghozhatunk az úgynevezett igazságtáblázat alapján.

p (1. operandus)

q (2. operandus)

&& (ÉS)

II (VAGY)

^ (KIZÁRÓ VAGY)

igaz

igaz

igaz

igaz

hamis

igaz

hamis

hamis

igaz

igaz

hamis

igaz

hamis

igaz

igaz

hamis

hamis

hamis

hamis

hamis

8. táblázat

Példa: az ÉS művelet esetén két logikai kifejezést kell értékelnie, hogy ami akkor és csak akkor ad igaz eredményt, ha mindkét feltétel igaz: tegyük fel hogy az x értéke 45 és 500 közötti értéknek kell lenni (45 <= x <= 500). C# szintaxisban leírva: if ((45 <= x) && (x <= 500)).

Lássunk egy másik példát. VAGY művelet esetén elég, ha az egyik feltétel igaz, de legalább egynek igaznak kell lennie: például ha keresünk egy számot, ami páros vagy 5-el osztható. Ami azt jelenti, hogy ezeknek a számoknak kettővel vagy öttel képzet modulus értéke (osztási maradéka) 0. C# szintaxisban leírva: if ((x% 2 == 0) || (x% 5 == 0)).

A „kizáró vagy” akkor és csak akkor ad vissza igaz értéket, ha a két operandus különbözik.

További információ:

http://hu.wikipedia.org/wiki/Java_programoz%C3%A1si_nyelv#Felt.C3.A9teles_utas.C3.ADt.C3.A1sok

 

 

A tananyag a követkkező licenc alá esik: GNU Free Documentation License