CodeGym /Java-Blog /Germany /Java Boolean
Autor
Pavlo Plynko
Java Developer at CodeGym

Java Boolean

Veröffentlicht in der Gruppe Germany
Das Wort „boolesch“, auf Englisch „boolean“, kann im Kontext der Programmiersprache Java in verschiedenen, wenn auch sehr verwandten Bedeutungen verwendet werden. Da wären die folgenden:
  • Der primitive Datentyp boolean oder eine boolean-Variable dieses Typs
  • Die Java-Klasse Boolean Klasse oder das Wrapper-Objekt Boolean
  • Boolescher Ausdruck, boolescher Wert, eine Bedingung
  • Boolesche Operatoren in Java
In diesem Artikel gehen wir auf alle diese Optionen ein und erklären, welche Konzepte den booleschen Ausdrücken zugrunde liegen. Java Boolean - 1

Was ist ein boolescher Wert im allgemeinen Sinne?

Das Konzept des booleschen Ausdrucks stammt aus der Mathematik, oder besser gesagt aus der mathematischen Logik. Ein boolescher Ausdruck in der Aussagenalgebra ist ein Ausdruck, von dem man sagen kann, dass er wahr („true“) oder falsch („false“) ist. So wie hier:
„Schnee ist weiß“ „Krokodile können fliegen“ „2 + 2 = 4“ „1 + 1 = 21“
Zugleich sind „2“ oder „Schnee“ keine booleschen Ausdrücke.

Primitiver Datentyp boolean und boolean-Variablen in Java

Wenn du in Java von einem „boolean“ sprichst, handelt es sich höchstwahrscheinlich um einen primitiven boolean-Datentyp und boolean-Variablen dieses Typs. Wie du wahrscheinlich schon vermutet hast, können Variablen dieses Typs nur zwei Werte annehmen, nämlich „true“ und „false“. Java hat ziemlich strenge Einschränkungen: Ein boolean kann in Java nicht in einen anderen Datentyp umgewandelt werden und umgekehrt. Insbesondere ist boolean in Java kein ganzzahliger Typ, und ganzzahlige Werte können nicht anstelle von booleans verwendet werden. Hier ist ein Beispiel für das direkte Setzen eines boolean-Typs:

boolean myBoolean; //boolean variable
myBoolean = false; 
boolean myBoolean1 = true; //another boolean variable
Hier haben wir zwei boolean-Variablen. Lass uns ein kleines Programm mit einem Beispiel für die Verwendung eines boolean-Typs schreiben:

//boolean variable example
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       System.out.println(myBoolean);
   }
}
Dieses Programm gibt „false“ auf der Konsole aus. Übrigens: Eine boolean-Variable ist standardmäßig auf „false“ gesetzt, aber Java erlaubt es dir nicht, mit nicht initialisierten lokalen Variablen zu arbeiten.

Boolesche Ausdrücke in Java

Neben der expliziten Initialisierung einer boolean-Variablen auf „true“ oder „false“ wird der boolean-Datentyp an vielen Stellen implizit verwendet. Genauso wie das Ergebnis einer Addition von Zahlen eine Zahl ist, ist das Ergebnis eines Vergleichs wahr („true“) oder falsch („false“), d. h. es ist vom Typ boolean. Das bedeutet, dass zusätzlich zur direkten Angabe eines booleschen Wertes durch die Anweisung zur Zuweisung einer boolean-Variable boolesche Werte aus verschiedenen Vergleichen resultieren, wie z. B. 5 > 2, und hauptsächlich in bedingten Anweisungen und Schleifen verwendet werden. Hier ist ein Beispiel für eine solche Verwendung des Typs boolean:

public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       int a = 5;
       int b = 7;
       System.out.println(a < b);
       System.out.println(0 > 7);
       System.out.println(myBoolean == false);
   }
}
Die Ausgabe ist:
true false true
Im Fall von a < b hat der Operator < den Ausdruck auf der linken Seite mit dem Ausdruck auf der rechten Seite verglichen. Wir haben das Ergebnis des Vergleichs auf dem Bildschirm angezeigt. Da 5 < 7 gilt (die Aussage ist also wahr), wird der Wert true auf der Konsole ausgegeben. Im zweiten Fall zeigen wir einen direkten Vergleich von Null und Sieben an, und im dritten Fall fragen wir, ob der Wert der Variablen myBoolean „false“ ist. Da dies der Fall ist, geben wir den Wert trueaus. Um boolesche Ausdrücke in Java zu bilden, können wir beliebige Vergleichsoperatoren verwenden:
Vergleichsoperatoren Java-Operator Beispiel für eine Operation Das Ergebnis der Operation
Kleiner als < a < b true, wenn a kleiner als b ist, sonst false
Größer als > a > b true, wenn a größer als b ist, sonst false
Kleiner als oder gleich <= a <= b true, wenn a kleiner oder gleich b ist, sonst false
Größer als oder gleich >= a >= b true, wenn a größer oder gleich b ist, sonst false
Gleich == a == b true, wenn a gleich b ist, sonst false
Nicht gleich != a != b true, wenn a nicht gleich b ist, sonst false

Wo boolesche Werte verwendet werden

Boolesche Werte und bedingte Ausdrücke werden sehr häufig in den Bedingungen von Verzweigungsanweisungen, ternären Operatoren und Schleifen verwendet. Tatsächlich basiert ihre Verwendung auf der Überprüfung bestimmter boolescher Ausdrücke. So wie hier:

public class BoolTest2 {
       public static void main(String[] args) {
           int i = 0;
           while (i <= 10)
           {
               System.out.println(i);
               i++;
           }         
      }
}
Dieses Programm gibt eine Folge von Ganzzahlen aus und erhöht sie um eins, solange die Bedingung in den Klammern nach dem „while“ erfüllt ist. Das heißt, solange der Ausdruck i <=10 „true“ ergibt. Java Boolean - 2

Boolesche Operatoren in Java. Boolesche Ausdrücke mit booleschen Operatoren bilden

Die folgenden logischen (oder booleschen) Operationen sind in Java verfügbar:
  • Die logische Negation ist auch NOT oder die Umkehrung. In Java wird dies durch das Symbol ! vor dem Ausdruck gekennzeichnet.

  • Das logische Und ist auch AND oder die Konjunktion. Bezeichnet durch das Symbol & zwischen den beiden Ausdrücken, auf die es angewendet wird.

  • Das logische Oder ist auch OR oder die Disjunktion. In Java wird dies durch das Symbol | zwischen zwei Ausdrücken gekennzeichnet.

  • Exklusives Oder, XOR, strenge Disjunktion. In Java wird es durch das Symbol ^ zwischen zwei Ausdrücken gekennzeichnet.

  • In Java gehören zu den logischen Operatoren das bedingte Oder, das als || bezeichnet wird, sowie das bedingte Und, &&.

Werfen wir einen Blick auf die Tabelle mit einer kurzen Beschreibung der einzelnen booleschen Operatoren in Java, und weiter unten werden wir sie ausführlicher beschreiben und Codebeispiele geben. Mit „Operanden“ meinen wir in der Tabelle den logischen Ausdruck oder die Variablen, auf die der Operator angewendet wird.

a | b == true
Boolescher Operator in Java Name Typ Beschreibung Beispiel
! Logisches „Nicht“ (NOT, Negation) unär      !x bedeutet „nicht x“. Gibt true zurück, wenn x false ist. Gibt false zurück, wenn x true ist.

boolean x = true;

dann


// !x == false
& Logisches „Und“ (AND, logische Multiplikation) binär      (a & b) gibt true zurück, wenn sowohl a als auch b true sind.

a = true;
b = false;

dann


a & b == false
| Logisches „Oder“ (OR, logische Addition) binär      (a | b) gibt true zurück, wenn a oder b oder beide true sind.

a = true;
b = false;

dann

^ Logisches „exklusives Oder“ (XOR) binär      (a ^ b) gibt true zurück, wenn ausschließlich einer der Operanden (a oder b) true ist. Gibt false zurück, wenn a und b beide gleichzeitig true oder false sind. Wenn a nicht gleich b ist, wird true zurückgegeben.

a = true;
b = false;

dann


a ^ b == true
&& Bedingtes UND (abgekürztes logisches UND) binär      a && b Das ist dasselbe wie a & b, aber wenn a false ist, gibt der Operator einfach false zurück, ohne b zu prüfen.
|| Bedingtes ODER (abgekürztes logisches ODER) binär      a || b ist dasselbe wie a | b, aber wenn a true ist, gibt der Operator einfach true zurück, ohne b zu prüfen.
Beachte, dass in Java die Operatoren & | und ^ auch für Ganzzahlen gelten. In diesem Fall funktionieren sie ein wenig anders und werden bitweise logische Operatoren genannt. Sehen wir uns ein Beispiel mit mehreren logischen Ausdrücken an, die mit logischen Operatoren gebildet werden.

public class BoolTest2 {
   public static void main(String[] args) {
   int a = 5;
   int b = 7;
   boolean myBool1 = true;
   boolean myBool2 = false;
       System.out.println(myBool1&myBool2);
       System.out.println(myBool1|myBool2);
       System.out.println(!myBool1);
       System.out.println((a > b) & !myBool1 | myBool2);
   }
}
Hier ist die Ausgabe:
false true false false
Tatsächlich kannst du mit logischen Operatoren sehr komplexe logische Konstruktionen erstellen, zum Beispiel
(a<!b)&(q+1 == 12)^(!a | c & b > 1 + b)|(q ^ a > !b)
Wenn alle Variablen initialisiert sind, werden solche Konstruktionen funktionieren. Du solltest sie aber nicht missbräuchlich einsetzen, denn sie erschweren das Lesen des Codes. Trotzdem ist es sehr nützlich, sich mit solchen logischen Konstruktionen zu beschäftigen. Versuche, logische Ausdrücke mit anderen logischen Operatoren zu bilden, die in der Tabelle angegeben sind.

Vorrang der logischen Operationen

Wie in der Mathematik haben auch in der Programmierung die Operatoren eine bestimmte Reihenfolge, wenn sie im selben Ausdruck vorkommen. Unäre Operatoren haben Vorrang vor binären Operatoren und die Multiplikation (auch logisch) vor der Addition. Hier sind logische Operatoren in der Liste höher platziert, je höher ihre Priorität ist:
  • !

  • &

  • ^

  • |

  • &&

  • ||

Boolean-Wrapper in Java

In Java hat jeder primitive Typ einen „Bruder“: eine Wrapper-Klasse (Wrapper). Ein Wrapper ist eine spezielle Klasse, in der der Wert eines primitiven Datentyps gespeichert wird. Es handelt sich jedoch um eine Klasse, du kannst also Instanzen (Objekte) davon erstellen. In diesen Objekten werden die notwendigen Werte der Primitive gespeichert, während sie reale Objekte sein werden. Der primitive Datentyp boolean in Java hat die Wrapper-Klasse Boolean (mit großem B). Boolean-Klassenobjekte werden genau wie alle anderen erstellt:

Boolean b = new Boolean(false);
Die Java-Klasse Boolean besitzt nützliche Methoden. Eine der interessantesten davon ist die Methode parseBoolean. Die Methode static boolean parseBoolean(String s) parst das String-Argument als boolean. Der zurückgegebene boolesche Wert ist true, wenn das String-Argument nicht null ist und der String „true“ entspricht, wobei die Groß- und Kleinschreibung ignoriert wird. Andernfalls gibt sie false zurück.

Beispiel für die Methode parseBoolean


public class BoolTest2 {

        public static void main(String[] args)
        {
            System.out.println(Boolean.parseBoolean("True"));
            System.out.println(Boolean.parseBoolean("TRuE"));
            System.out.println(Boolean.parseBoolean("False"));
            System.out.println(Boolean.parseBoolean("here"));

        }
    }
Die Ausgabe ist:
true true false false
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION