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