Unter der Vielzahl an logischen Operatoren spielen die logischen Verknüpfungsoperatoren eine besondere Rolle.
Um in der Informatik komplexe Zusammenhänge bei Bedingungen ausdrücken zu können, werden logische Verknüpfungen verwendet. Ähnlich wie mit arithmetischen Operatoren, also Plus, Minus, Mal, Geteilt, usw. Zahlen miteinander verknüpft werden können, kann man Wahrheitswerte (boolesche Werte) mit logischen Operatoren verknüpfen.
Anders als Zahlen können Wahrheitswerte nur zwei verschiedene Werte annehmen: wahr
oder falsch
, oft auch mit 0
oder 1
dargestellt.
Hier ein einfaches Beispiel anhand einer Aussage:
Ich gehe ins Freibad, wenn es über 25 Grad warm ist und die Sonne scheint.
Diese Aussage besteht aus 2 Teilbedingungen.
wahr
, wenn die Temperatur über 25 Grad liegt.wahr
, wenn die Sonne scheint.Ins Freibad gehe ich aber nur, wenn beide Teile der Bedingung wahr sind. Eine davon reicht nicht. Dies wird dadurch ausgedrückt, indem ein und dazwischen steht. Wäre eine der beiden Teilbedingungen ausreichend, d. h.
dann würde man die Aussage mit einem oder formulieren.
Genau das ist mit Bedingungen in der Informatik durch logische Operatoren möglich.
Im Beispiel hast du bereits die Operatoren und und oder kennengelernt. In der Informatik werden diese meist durch ihre englischsprachigen Begriffe AND
und OR
ausgedrückt. Hinzu kommt noch der nicht-Operator, also NOT
.
Je nach (Programmier-)Sprache, in der die Operatoren verwendet werden, haben sich unterschiedliche Schreibweisen durchgesetzt. Gebräuchlich sind
AND
oder &&
OR
oder ||
NOT
oder !
Beispiele
True AND False
oder True && False
True OR False
oder True || False
NOT True
oder ! True
Um zu sehen, zu welchem Ergebnis die Verknüpfung zweier Wahrheitswerte mit einem Operator kommt, kann man diese in einer sogenannten Wahrheitstabelle niederschreiben. Dort werden alle verschiedenen Kombinationsmöglichkeiten mit ihren Ergebnissen dargestellt.
AND | OR | |||||
---|---|---|---|---|---|---|
Wert 1 | Wert 2 | Ergebnis | Wert 1 | Wert 2 | Ergebnis | |
False | False | False | False | False | False | |
False | True | False | False | True | True | |
True | False | False | True | False | True | |
True | True | True | True | True | True |
Wie man sieht, müssen bei der AND
-Verknüpfung beide Parameter wahr sein, damit ein wahres Ergebnis herauskommt. Einmal wahr alleine reicht nicht.
Bei der OR
-Verknüpfung reicht bereits ein wahrer Parameter um das ganze Ergebnis wahr werden zu lassen. Auch beide dürfen wahr sein, damit das so bleibt.
Bei NOT
gibt es nur einen Parameter. Deshalb sieht es dort wesentlich übersichtlicher aus:
NOT True = False
Not False = True
In der Informatik werden logische Vergleichsoperatoren häufig genutzt um den Wert von Variablen zu überprüfen, zum Beispiel so: $var < 50
Wenn der Wert der Variable $var
kleiner ist als 50, dann ergibt dieser Ausdruck True
, ansonsten ergibt er False
.
Wenn nun verschiedene Bedingungen zusammen überprüft werden müssen und eine Entscheidung im Programm von vielen solchen Überprüfungen abhängt, dann benötigt man logische Verknüpfungsoperatoren um diese wie gewünscht miteinander zu verbinden. Damit klar ist, in welcher Reihenfolge sie zusammengehören, werden meist Klammern eingesetzt.
Im folgenden Beispiel wird ein solcher Ausdruck Schritt für Schritt aufgelöst. Dazu nehmen wir an, dass die Variable $v
den Wert von 42
hat.
( ($v > 50) AND (300 != $v) ) OR ( ($v < 10) OR ($v < 100) ) ( ( False ) AND ( True ) ) OR ( ( False ) OR ( True ) ) ( False ) OR ( True ) True
In dem hier dargestellten Beispiel wird in jedem Schritt anhand der oben abgebildten Wahrheitstabellen eine Ebene von logischen Verknüpfungen zu einem einzigen Wahrheitswert reduziert. Diese Schritte wiederholen sich so lange, bis das Endergebnis feststeht.