Java-Grundlagen: Logische Operatoren in Java

Bisher hatten wir Java-Operatoren behandelt, die hauptsächlich numerische Werte verarbeitet haben. Dies ist bei logischen Operatoren nicht der Fall.

Wie der Name schon verrät, verabreiten logische Operatoren Wahrheitswerte. In Java werden sie verwendet um boolean-Werte zu verknüpfen und auszuwerten.

Es gibt in Java vier verschiedene logische Operatoren, wobei für zwei Operatoren jeweils eine Spezailvariante existiert.

Für die logischen Operatoren Und sowie Oder ist ein schnelles Auswerten möglich, dies wird als Short-Circuit-Evaluation (S-C-E) bezeichnet.

plhq_teaser_hbox_gelb_fotolia_RA Studio_46292813

Unser großes
Android Online-Kurs
Gesamtpaket



Weitere Infos

Die folgenden logischen Operatoren sind in Java definiert:

  • Nicht-Operator
  • Exklusiv Oder-Operator
  • Und-Operator
  • Oder-Operator

Hinweis: Schnelles Auswerten (Short-Circuit-Evaluation, S-C-E)
Ein Gesamtausdruck besteht aus mehreren Teilausdrücken. Zuerst wird der linke Teilausdruck ausgewertet. Steht bereits nach dem Auswerten dieses Teilausdrucks das Ergebnis des Gesamtausdrucks fest, werden die weiter rechts stehenden Teilausdrücke nicht mehr ausgewertet. Für A && B gilt: falls der A-Ausdruck bereits false liefert, wird der B-Ausdruck nicht mehr ausgewertet, da A && B zwangsläufig false ergeben wird.

Die folgende Tabelle stellt die logischen Operatoren von Java einzeln vor:

Operator Bezeichnung Beispiel Beschreibung
! Nicht !a Es wird a negiert. Ist a wahr, wird false zurückgegeben, andernfalls true.
^ Exklusiv Oder a ^ b Es wird a und b ausgewertet. Besitzt a einen anderen Wahrheitswert als b wird true zurückgegeben, andernfalls false.
& Und a & b Es wird a und b ausgewertet. Sind beide wahr, wird true zurückgegeben, andernfalls false.
| Oder a | b Es wird a und b ausgewertet. Ist mindestens einer der beiden Ausdrücke wahr, wird true zurückgegeben, andernfalls false.
&& Und (S-C-E) a && b Es wird a und b ausgewertet. Die Auswertung wird abgebrochen wenn a bereits falsch ist. Dann wird sofort false zurückgegeben. Sind beide wahr, wird true zurückgegeben, andernfalls false.
|| Oder (S-C-E) a || b Es wird a und b ausgewertet. Die Auswertung wird abgebrochen wenn a bereits wahr ist. Dann wird sofort true zurückgegeben. Ist mindestens einer der beiden Ausdrücke wahr, wird true zurückgegeben, andernfalls false.

In dem folgenden Beispielprogramm werden die logischen Operatoren verwendet.

Zu Beginn werden die drei boolean-Variablen a, b und c deklariert und auch direkt mit Wahrheitswerten initialisiert. Weiterhin wird die boolean-Variable ergebnis deklariert.

Anschließend werden die verschiedenen logischen Operatoren auf die Variablen angewendet und jeweils das Ergebnis in der Kommandozeile ausgegeben.

Beispiel logische Operatoren in Java.

/*
* Beispielanwendung logische Operatoren in Java.
*/

public class LogischeOperatoren{
 public static void main(String[] args) {
 
  boolean a = true, b = true, c = false;
  boolean ergebnis;

  System.out.println("\na = " + a);
  System.out.println("b = " + b);
  System.out.println("c = " + c);

  ergebnis = !a;
  System.out.println("\nNicht a:   !a = " + ergebnis);

  ergebnis = a ^ b;
  System.out.println("\nExklusiv Oder:   a ^ b = " + ergebnis);

  ergebnis = a ^ c;
  System.out.println("Exklusiv Oder:   a ^ c = " + ergebnis);

  ergebnis = a & b;
  System.out.println("\nUnd:   a & b = " + ergebnis);

  ergebnis = a & c;
  System.out.println("Und:   a & c = " + ergebnis);

  ergebnis = a | b;
  System.out.println("\nOder:      a | b = " + ergebnis);

  ergebnis = a | c;
  System.out.println("Oder:      a | c = " + ergebnis);

  ergebnis = (!a) | c;
  System.out.println("Oder:   (!a) | c = " + ergebnis);

  ergebnis = a && b;
  System.out.println("\nUnd (S-C-E):   a && b = " + ergebnis);

  ergebnis = a && c;
  System.out.println("Und (S-C-E):   a && c = " + ergebnis);

  ergebnis = a || b;
  System.out.println("\nOder (S-C-E):      a || b = " + ergebnis);

  ergebnis = a || c;
  System.out.println("Oder (S-C-E):      a || c = " + ergebnis);

  ergebnis = (!a) || c;
  System.out.println("Oder (S-C-E):   (!a) || c = " + ergebnis);

 }
}

Die zugehörige Textausgabe ist in der unten abgebildeten Kommandozeilenausgabe dargestellt.

Java logische Operatoren in Ausdrücken

Java logische Operatoren – Ausgabe der Beispielanwendung


Comments 12

  1. Ich sitze gerade im Unterricht und dieser Artikel hilft sehr! Ich verstehe Annabels Problem nicht. Aber die Kommentare haben meinen ganzen Tag verbessert. Vielen Dank! Und sorry falls hier Rechtschreibfehler sind ich habe LRS.

  2. Ist eine super Erklärung zum Thema „logische Operatoren“. Ich als Novize auf dem Gebiet der Informatik habe sie auf Anhieb verstanden.

  3. Menschen wie Annabel werden die Schuld, wenn etwas nicht genauso läuft, wie sie es wünschen oder sich vorstellen, immer auf jemand Anderen oder auf etwas Anderes projezieren.
    Damit muss man sich nicht mit eigenen Schwächen oder Fehlern auseinander setzen!

    Die Erklärung von Chris ist ausgezeichnet, einwandfrei und leicht verständlich.
    Weiter so…

    1. Post
      Author
  4. Leider hilft mir dieser Beitrag nicht dabei, diese Operatoren richtig anzuwenden und zu programmieren.
    Dies ist sehr schade, denn ich kann meine Aufgaben nun nicht erledigen, was meinen Lehrer sauer machen wird 🙁 Die Schuld werde ich Ihnen geben…
    Abgesehen davon ist dieser Beitrag dennoch informativ und nicht so kompliziert beschrieben wie auf anderen Seiten!!!
    Viel Erfolg bei ihrer weiteren Arbeit:)

    1. Post
      Author

      Hallo Annabel,

      dein Lehrer sollte mal etwas entspannen. Es kann ja nicht immer alles klappen. Und danke für deine lobenden Worte.

      Viele Grüße, Chris

  5. Pingback: Operatoren, Ausdrücke und Anweisungen in Java -

  6. Pingback: Java-Grundlagen: Besondere Operatoren in Java

  7. Pingback: Java-Grundlagen: Zuweisungsoperatoren in Java

  8. Pingback: Java-Grundlagen: Ausdrücke, die kleinsten ausführbaren Einheiten in Java

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.