CodeGym /Java-Kurse /Java Syntax /Boolescher Typ

Boolescher Typ

Java Syntax
Level 4 , Lektion 7
Verfügbar

„Hallo, Amigo. Ich möchte dir etwas über einen neuen Datentyp erzählen. Den Datentyp boolean. Variablen dieses Typs können nur zwei Werte annehmen true (wahr) und false (falsch).

„Wie verwenden wir ihn?“

„Dieser Typ wird implizit an vielen Stellen verwendet. So wie jede Additionsoperation eine Zahl erzeugt, ist das Ergebnis eines jeden Vergleichs ein boolean. Hier ein paar Beispiele:"

Code Erläuterung
1
boolean m;
Diese beiden Ausdrücke sind gleichwertig. Der Standardwert einer boolean-Variable ist false.
2
boolean m = false;
3
if (a > b)
    System.out.println(a);
Das Ergebnis des Vergleichs (entweder true oder false) wird der Variable m zugewiesen. Die Bedingung ist erfüllt, wenn der Ausdruck als true ausgewertet wird.
4
boolean m = (a > b);
if (m)
    System.out.println(a);
5
boolean m = (a > b);
if (m == true)
    System.out.println(a);
Es ist nicht notwendig, eine logische (boolean) Variable mit true oder false zu vergleichen. Das Ergebnis des Vergleichs ist ein boolean, der mit der anderen Variable übereinstimmt. true == true ergibt z.B. true; true == false ergibt false.
6
boolean m = (a > b);
if (m)
    System.out.println(a);

„Weitere Beispiele:“

Code Erläuterung
1
public boolean isALessThanB (int a, int b)
{
    if (a < b)
        return true;
    else
        return false;
}
Diese Methode überprüft, ob die Zahl a kleiner als die Zahl b ist.

Hier sind vier gleichwertige Vergleiche. Der letzte ist der kompakteste und korrekt. Versuche immer, eine kompakte Schreibweise zu verwenden.

2
public boolean isALessThanB (int a, int b)
{
   boolean m = (a < b);
    if (m)
        return true;
    else
        return false;
}
3
public boolean isALessThanB (int a, int b)
{
    boolean m = (a < b);
    return m;
}
4
public boolean isALessThanB (int a, int b)
{
    return a < b;
}

„Was ist, wenn ich 0<a<b schreiben will?“

„Java hat keinen Vergleichsoperator, der drei Operanden entgegennimmt. Du müsstest das also so machen: (0<a) AND (a<b).“

„Schreibe ich das Wort AND?“

„Einen Moment. Ich werde das erklären. Java hat drei logische Operatoren: AND, OR und NOT. Du kannst sie verwenden, um Bedingungen unterschiedlicher Komplexität zu konstruieren. Du kannst diese Operatoren nur mit booleschen Ausdrücken verwenden. Du kannst also nicht (a+1) AND (3) schreiben, aber (a>1)AND (a<3) ist in Ordnung.“

„Der NOT-Operator ist unär: Er betrifft nur den Ausdruck auf der rechten Seite. Er ist eher wie ein Minuszeichen vor einer negativen Zahl als wie ein Multiplikationszeichen zwischen zwei Zahlen.“

„Du kannst verschiedene Operationen mit (logischen) boolean Variablen durchführen.“

„Was zum Beispiel?“

„Sehen wir es uns an:“

Logischer Operator Java-Notation Ausdruck Ergebnis
AND && true && true true
true && false false
false && true false
false && false false
ODER || true || true true
true || false true
false || true true
false || false false
NOT ! ! true false
! false true
Häufige Kombinationen und Ausdrücke m && !m false
m || !m true
! (a && b) !a || !b
! (a || b) !a && !b

„Kannst du mir noch mehr Beispiele geben?“

„Klar:“

Java-Notation Logische Notation
(a<3) && (a>0) (a < 3) AND (a>0)
(a>10) || (a<100) (a>10) OR (a<100)
(a<b) && (!(c<=d)) (a<b) AND (NOT (c<=d))

„Jetzt mach ein paar Aufgaben.“

Kommentare (9)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Bernhard M Level 4, Germany, Germany
21 Januar 2023
Also da wird soviel erklärt und dann kommt was mit "cont" !! Das ist irgendwie etwas irritierend !! Ohne Vorkenntnisse ist man da ja chancenlos!!
Anonymous #11330618 Level 7, Germany, Germany
12 Mai 2023
Cont is hier doch nur eine Variable oder? Die halt dazu benutzt wird um die Anzahl zu zählen oder verstehe ich was falsch?
Marcellus Level 6, Denmark
4 Januar 2023
nach den letzten 3 Seiten habe ich wohl den anschluss verloren...
Ch1psta Level 6
8 Juli 2022
Vielen Dank für das Kapitel. Bei manchen Aufgaben verzweifle ich wirklich. Aber dann mit etwas Hilfe passt es wieder. Oft sind meine Codes echt lang und umständlich glaube ich.
MaisNon Level 18, Spain
31 März 2022
Zwischenzeitlich fand ich mich nicht so gut zurecht, weil mir Erklärungen fehlten. Aber es macht wieder richtig Spaß und ich lerne wirklich viel und komme gut voran. Was mir besonders gefällt, dass ich merke, dass ich immer sicherer werde.
coffeeCuppa Level 6, Germany, Germany
28 Mai 2022
Kann ich nur zustimmen.
Daniel Brinschwitz Level 9, Leipzig, Germany
27 November 2021
Dieses Kapitel ist großartig erklärt. Danke.
Negyth Level 10, Lüneburg, Germany
23 April 2020
boolean m = true; m && !m // Wird ausgewertet zu: false m || !m // Wird ausgewertet zu: true m && !m wird immer zu false ausgewertet, da m nicht true UND false zur selben Zeit sein kann, wohingegen das Oder in m || !m den Ausdruck immer zu true auswertet, da eine Bedingung immer zu true ausgewertet werden kann, vorausgesetzt m ist vom typ boolean und hält einen boolschen Wert. (m && !m) == (m || !m) wird zu false ausgewertet, was beweist, dass das Resultat eben nicht das Selbe ist.
Nouser Level 36, Germany
24 März 2020
Warum sollen denn

m && !m
m || !m
häufige Kombinationen und Ausdrücke sein? In meinen Augen sind sie absolut redundant, da sie immer, egal welcher Wert eingesetzt wird, zum selben Resultat führen.