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();

}

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A fenti pszeudo-kód példákban láthatjuk a 2 legfontosabb logikai operátor működését:

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):

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

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:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

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.