Operátorok
Logikai operátorok
A hétköznapi életben gyakran találkozunk olyan döntési helyzetekkel, amelyekben 1 vagy 2, esetleg még több feltételnek egyszerre kell teljesülnie.
1 feltételes (választási kényszer, logikai elágazás)
Ha esik az eső, vinnem kell magammal esernyőt.
if(eso == true){
esernyoCipeles();
}
2 feltételes – legalább 1 feltételnek teljesülnie kell (logikai VAGY)
Írtam neki az ügyben sms-t, valamint e-mailt. Bármelyiket is olvassa (VAGY az sms-t, VAGY az e-mailt), de vette az üzenetet.
if(smsOlvasas == TRUE || emailOlvasas == TRUE{
uzenetKezbesites();
}
2 feltételes – mindkét feltételnek teljesülnie kell (logikai ÉS)
Ha van ebből a barna cipőből ÉS ráadásul az én méretemben, akkor megveszem.
if(cipoSzin == barna && cipoMeret == 42){
cipoVasarlas();
}
Több feltételes (itt: több logikai ÉS)
Ha adott időre lesz Internet-kapcsolatom ÉS az áruból van raktáron ÉS van rá pénzem is, akkor online megrendelem a terméket.
if(internetKapcsolat == TRUE && aruRaktaron == TRUE && haviFizetes == TRUE){
aruRendelesOnline();
}
A fenti pszeudo-kód példákban láthatjuk a 2 legfontosabb logikai operátor működését:
-
&& - logikai ÉS művelet
-
|| - logikai VAGY művelet
Ezek pontosan azt jelentik, amiért használjuk őket a hétköznapi gondolkodásban-beszédben: ÉS illetve VAGY választási körülmények meghatározására.
Nézzünk alább mindkét operátorra 1-1 futtatható Java-kódot. Az első kód 0 és 100 között kiválasztja és kiírja a páros ÉS egyúttal az 5-tel osztható számokat (tehát mindkét feltételnek teljesülnie kell):
public class Main {
public static void main(String[] args) {
for(int i = 0; i <= 100; i++){
if(i % 2 == 0 && i % 5 == 0){
System.out.println(i);
}
}
}
}
Végeredmény:
0
10
20
30
40
50
60
70
80
90
100
A következő kód már nem tesz különbséget páros és 5-tel osztható számok között, ha az egyik feltétel teljesül, a szám kiírásra kerül:
public class Main {
public static void main(String[] args) {
for(int i = 0; i <= 100; i++){
if(i % 2 == 0 || i % 5 == 0){
System.out.println(i);
}
}
}
}
Végeredmény:
0
2
4
5
6
8
10
12
14
15
16
18
20
22
24
25
26
28
30
32
34
35
36
38
40
42
44
45
46
48
50
52
54
55
56
58
60
62
64
65
66
68
70
72
74
75
76
78
80
82
84
85
86
88
90
92
94
95
96
98
100
A logikai VAGY alapú műveleteknél fordulhat elő az úgynevezett rövidzárás jelensége. Ekkor az első ág folyamatosan TRUE értéket ad, ezért csakis az kerül végrehajtásra, míg a másik ág sohasem lesz kiértékelve. Ez néhány speciális esetben rossz kimeneti eredményt okozhat. Logikai VAGY alapú műveleteknél tehát olyan teszteseteket is le kell futtatnunk, amelyek a második ágat, illetve az ágak együttes viszonyát is vizsgálják.
Tágabb értelemben komplex feltételmegadás esetén persze az összes ágat meg kell vizsgálnunk.