Logische Operatoren in Java

Mit einem logischen Operator wird ein Wahrheitswert verknüpft. Sie operieren nur auf boolean-Typen.

Java bietet hier folgende Operatoren:

  • &&     Und
  • ||       Oder 
  • ^       Xor
  • !        Nicht

 

Wahrheitstabelle:

 && UND
 || ODER
 ^ XOR
 0  0  false  0  0  false  0  0  false
 0  1  false  0  1  true  0  1  true
 1  0  false  1  0  true  1  0  true
 1  1  true  1  1  true  1  1  false
  • Bei UND Operationen ergibt nur true && true den Wert true, alle anderen Kombinationen ergeben false.
  • Bei ODER Operationen ergibt nur false || false den Wert false, alle anderen Kombinationen ergeben true.
  • Bei exklusiven ODER (XOR) Operationen ergeben true ^ false bzw. false ^ true den Wert true, die beiden anderen Kombinationen ergeben false.

Das logische NICHT ! gibt als Ergebnis true zurück, wenn der Operand false ist, und gibt als Ergebnis false zurück, wenn der Operand true ist.
Das logische NICHT erwartet nur einen Operanden, der hinter ! angegeben werden muss. Daraufhin wird einfach der Wahrheitswert des Operanden umgedreht und zurückgegeben.

 


Operator UND

public class Main
{
 
    public static void main(String[] args)
    {
    int a = 0, b = 1;
 
        if ((a == 1) && (b == 1))     // wenn a und b = 1, dann
           
            System.out.println("Die Bedingung a und b = 1 ist wahr!");    //Ausgabe hier, sonst
        else
            System.out.println("Die Bedingung a und b = 1 ist falsch!");   // Ausgabe hier.
    }
}

Ausgabe:

Die Bedingung a und b = 1 ist falsch!

 


OPERATOR XOR

public class Main
{
 
    public static void main(String[] args)
    {
    int a = 0, b = 1;
 
        if ((a == 1) ^ (b == 1))     // wenn a=1 und b=0 oder a=0 und b=1, dann
           
            System.out.println("Die Bedingung a=1 und b=0 oder a=0 und b = 1 ist wahr!");    // Ausgabe hier, sonst
        else
            System.out.println("Die Bedingung a=1 und b=0 oder a=0 und b = 1 ist falsch!");   // Ausgabe hier.
    }
}

 

Ausgabe:

Die Bedingung a=1 und b=0 oder a=0 und b = 1 ist wahr!

 

Eine Besonderheit sind die beiden Kurzschlussoperatoren UND und ODER.
Im Regelfall wird ein logischer Ausdruck nur dann weiter ausgewertet, wenn er das Ergebnis noch beeinflussen kann.

 

Für UND und ODER optimiert der Compiler da:

  • UND: Ist einer der beiden Ausdrücke falsch, kann das Ergebnis nicht mehr wahr werden. Das Ergebnis ist falsch.
  • ODER: Ist einer der beiden Ausdrücke bereits wahr, kann das Ergebnis nur mehr wahr werden.