Logische Verknüpfungen – Programmieren lernen mit JavaScript – Thytos
Nächstes Video startet in 3 Sekunden.
Programmieren lernen mit JavaScript

Logische Verknüpfungen

Um bool­sche Aus­sagen mit­ein­an­der zu ver­bin­den, gibt es lo­gi­sche Ver­knüp­fun­gen. Mit ihn­en kön­nen zwei bool­sche Wer­te kom­bi­niert werden.

Wie kann getestet werden, ob eine Zahl zwischen 0 und 100 liegt? Mit einem Vergleichsoperator kann geschaut werden, ob die Zahl über 0 liegt und ob sie kleiner als 100 ist.

var nr = -5; // Beliebige Zahl

nr > 0;
// => false

nr < 100;
// => true

Wolltet ihr daraus eine if-Bedingung schreiben, hättet ihr jedoch Schwierigkeiten, weil die beiden Vergleiche unabhängig voneinander sind. Was gebraucht wird, ist eine Möglichkeit, beide Bedingungen zusammen auszuwerten.

if (nr > 0 nr < 100) // Das funktioniert leider nicht

Genau für solche Fälle gibt es logische Verknüpfungen. In diesem Beispiel wird die UND-Verknüpfung benötigt.

Ist nr größer als 0 UND ist nr kleiner als 100?

Das funktioniert in JavaScript mit zwei kaufmännischen Und-Zeichen (auch Et-Zeichen genannt).

nr > 0 && nr < 100
// => false

Die logischen Verknüpfungen gehören zur boolschen Algebra, da sie Operatoren für boolsche Werte darstellen. Aufgelöst sieht das Beispiel folgendermaßen aus.

nr > 0 && nr < 100

// Entspricht bei nr === -5
-5 > 0 && -5 < 100

// Die einzelnen Vergleiche aufgelöst:
false && true

// Die UND-Verknüfung ist nur wahr, wenn beide Seiten wahr sind
false

UND-Verknüpfung (Konjunktion)

Zum besseren Verständnis der Funktionsweise der UND-Verknüpfung, könnt ihr euch einen Schaltkreis mit Batterie und Glühbirne vorstellen, in denen sich zwei Schalter hintereinander zwischen der Batterie und der Glühbirne befinden.

Sind beide Schalter angeschaltet, fließt der Strom und die Lampe leuchtet. Ist der erste Schalter aus, kann auch kein Strom mehr durch den zweiten fließen, sodass die Lampe nicht leuchtet. Genauso andersrum: Ist der erste Schalter an, aber der zweite Schalter aus, ist der Stromkreis ebenfalls unterbrochen.
Und wenn beide Schalter abgeschaltet sind, fließt natürlich gleichermaßen kein Strom, sodass die Lampe nicht brennt.

Die Zustände der beiden Schalter repräsentieren hierbei die boolschen Werte der logischen Verknüpfung und das Brennen der Lampe das entsprechende Ergebnis.
Die Lampe leuchtet nur, wenn beide Schalter an sind. Genauso ist eine UND-Verknüpfung nur wahr, wenn beide Eingabewerte wahr sind.

A B Ergebnis
1 1 1
1 0 0
0 1 0
0 0 0

In JavaScript bilden zwei Et-Zeichen den Operator für die Konjunktion.

1 && 1 // => 1
1 && 0 // => 0
0 && 1 // => 0
0 && 0 // => 0

ODER-Verknüpfung (Disjunktion)

Auch zum Verständnis der ODER-Verknüpfung könnt ihr euch einen Schaltkreis mit Batterie und Glühbirne vorstellen. In diesem Fall jedoch sind die beiden Schalter zwischen der Batterie und der Glühbirne nebeneinaner statt hintereinander und dadurch unabhängig voneinander, was das Ergebnis verändert.

Wenn der erste Schalter abgeschaltet wird, kann noch immer Strom durch den zweiten Schalter fließen, sodass die Lampe weiterhin leuchtet. Genauso andersrum: Wenn der erste Schalter aus, aber der zweite Schalter an ist, fließt der Strom und die Glühbirne brennt.
Nur wenn beide Schalter aus sind, ist auch die Lampe aus.

Während bei der Konjunktion das Ergebnis false war, sobald einer der Operanden false war, ist bei der Disjunktion das Ergebnis true, sobald einer der Operanden true ist.

A B Ergebnis
1 1 1
1 0 1
0 1 1
0 0 0

In JavaScript wird der ODER-Operator mit zwei senkrechten Strichen geschrieben.

1 || 1 // => 1
1 || 0 // => 1
0 || 1 // => 1
0 || 0 // => 0

NICHT (Negation)

Neben den beiden Verknüpfungen gibt es auch die logische Negation. Die verknüpft keine zwei Werte, sondern bezieht sich auf einen einzelnen boolschen Wert, der einfach umgedreht wird: Aus true wird false und aus false wird true.

A Ergebnis
1 0
0 1

In JavaScript wird der NICHT-Operator in Form eines Ausrufezeichens ausgedrückt, das vor den boolschen Wert geschrieben wird.

!1 // => false
!0 // => true

Beispielfall: Gemeinsame Teiler

Logische Operatoren sind essentiell in der Programmierung. Zum Beispiel kann damit festgestellt werden, ob eine Zahl gemeinsame Teiler hat. Erstellt euch eine Variable für die Zahl und setzt sie auf einen beliebigen Wert.

var nr = 12; // Beliebige Zahl

Mit dem Modulo-Operator findet ihr heraus, ob die Zahl durch 3 und durch 4 teilbar ist.

nr % 3 === 0
// => true

nr % 4 === 0
// => true

Mit der UND-Verknüpfung könnt ihr nun die beiden Aussagen miteinander kombinieren. Zur besseren Veranschaulichung stehen die Aussagen hier in Klammern, was syntaktisch jedoch nicht notwendig ist.

(nr % 3 === 0) && (nr % 4 === 0)
// => true

In diesem Fall hat die gewählte Zahl 12 die beiden gemeinsamen Teiler 3 und 4. Setzt nr auch auf andere Werte und probiert den Code mehrfach aus.

nr = 15;

(nr % 3 === 0) && (nr % 4 === 0)
// => false

nr = 228;

(nr % 3 === 0) && (nr % 4 === 0)
// => true