Java hat einen einfachen Typ, der logische Werte namens Boolean darstellt. Sein Wert kann nur einer von zwei Werten sein: wahr oder falsch. Es ist alles wie ein Das folgende Programm veranschaulicht die Verwendung boolescher Typen:
// Demonstrieren Sie boolesche Werte. class BoolTest { public static void main(String args[]) { boolean b = false; ("b ist " + b); // ein boolescher Wert kann die if-Anweisung steuern if(b) System.out.println("Dies wird ausgeführt."); System.out.println("Dies wird nicht ausgeführt." // Ergebnis eines relationalen Operators ist ein boolescher Wert System.out.println("10 > 9 ist " + (10 > 9));
Die Ergebnisse der Ausführung dieses Programms sind wie folgt:
b ist falsch. b ist wahr. Dies wird ausgeführt. 10 > 9 ist wahr
Zu diesem Programm gibt es drei interessante Dinge zu beachten. Erstens haben Sie gesehen, dass, wenn Sie die Methode println() verwenden, um einen booleschen Wert auszugeben, dieser „true“ oder „false“ anzeigt. Zweitens reicht der Wert der booleschen Variablen selbst aus, um die if-Anweisung zu steuern. Es besteht keine Notwendigkeit, if-Anweisungen wie diese zu schreiben:
if(b == true) ...
Drittens ist das Ergebnis eines Vergleichsoperators (z. B. <) ein boolescher Wert. Aus diesem Grund zeigt der Ausdruck 10>9 „wahr“ an. Darüber hinaus werden die zusätzlichen Klammern auf beiden Seiten des Ausdrucks 10>9 hinzugefügt, da der Pluszeichen-Operator „+“ eine höhere Priorität hat als der Operator „>“.
Der Unterschied zwischen logischen Operationen und bitweisen Operationen für boolesche JAVA-Typen
In Bezug auf die Ergebnisse sind die Ergebnisse der beiden Operationen gleich, aber die logische Operation weist ein „Kurzschluss“-Phänomen auf, während dies bei der bitweisen Operation nicht der Fall ist, und die bitweise Operation hat mehr „XOR“-Funktionen als die logische Operation.
Kurzschlussphänomen
Klasse br { static boolean f1() { return false; } static boolean f3() { return true }} boolean f_1 = br.f1()&&br.f2()&&br.f3 ();
Das Ergebnis ist falsch. Wenn f1() falsch ist, ist das Ergebnis der nachfolgenden &&-Operation bekannt, ohne dass JAVA die nachfolgende Operation „kurzschließen“ muss, wodurch die Leistung verbessert wird.
boolean f_2 = br.f2()||br.f1()||br.f3();
Das Ergebnis ist wahr, f2() ist wahr und es sind keine weiteren Operationen erforderlich.
Es scheint sehr praktisch und effizient zu sein, weist aber dennoch Mängel auf.
boolean f_3 = br.f2()||br.f3()&&br.f1();
Das Ergebnis wird wahr, was falsch sein sollte. Dies ist ein Fehler, der durch „Kurzschluss“ verursacht wird. Wenn Sie die richtige Antwort erhalten möchten, müssen Sie Klammern hinzufügen:
f_3=( br.f2()||br.f3())&&br.f1();
Bitweise Operationen bieten XOR-Funktionalität, die die Logik nicht bietet:
boolean f = true^true;
Ergebnis f = false;