CodeGym /Kurse /C# SELF /Boolescher Typ bool und logische Operationen

Boolescher Typ bool und logische Operationen

C# SELF
Level 3 , Lektion 3
Verfügbar

1. Boolescher Datentyp: bool

Wie wir schon gesehen haben, gibt es in C# einen sehr nützlichen Operator – if-else. Er führt einen Block aus, wenn die Bedingung in den Klammern wahr ist, und einen anderen Block, wenn die Bedingung falsch ist.

Damit man bequem mit Ausdrücken arbeiten kann, die entweder wahr oder falsch sind, wurde in C# ein spezieller Typ eingeführt – bool. Das Besondere daran: Variablen dieses Typs können nur zwei Werte annehmen: true (wahr) und false (falsch).

Andere Werte kann man einer bool-Variable nicht zuweisen. Der Compiler lässt das nicht zu.

Beispiele für Variablen vom Typ bool:

bool isAdult = true;
bool hasMoney = false;
Beispiel für die Deklaration von Variablen vom Typ bool

Eine bool-Variable hat nur zwei Werte – true (wahr) und false (falsch). Das war's! Fast wie bei einem erfolgreichen Test – entweder "bestanden" oder "durchgefallen" (ups).

2. Vergleichsoperationen

Wozu braucht man so einen primitiven Typ? Die eigentliche Power von bool zeigt sich, wenn wir logische Ausdrücke bauen. Die entstehen meistens mit Vergleichsoperatoren.

Operator Bedeutung Beispiel Wert
== Gleich
a == b
true oder false
!= Ungleich
a != b
true oder false
> Größer
a > b
true oder false
< Kleiner
a < b
true oder false
>= Größer oder gleich
a >= b
true oder false
<= Kleiner oder gleich
a <= b
true oder false

Beispiel:

int age = 20;
bool isAdult = age >= 18;   // true (20 größer oder gleich 18)
bool isTeenager = age >= 13 && age < 18; // false (20 ist nicht kleiner als 18)
bool isEven = age % 2 == 0; // true (20 ist ohne Rest durch 2 teilbar)

isAdult wird hier true, weil 20 wirklich ein "Erwachsenen"-Alter ist.

Wichtiger Punkt 1:

Operatoren, die aus zwei Zeichen bestehen, dürfen nicht getrennt werden.


a < = 10
speed > = max
age = = 18
time ! = 0
So darfst du das nicht schreiben! Vergleichsoperatoren müssen zusammen geschrieben werden: <=, >=, ==, !=

Wichtiger Punkt 2:

Achte darauf, dass es die Operatoren => und =< nicht gibt: Es gibt nur <= und >=. Wenn du a =< 3 schreibst, wird dein Code einfach nicht kompiliert.

Wichtiger Punkt 3:

In C# kannst du keinen Ausdruck wie 18 < age < 65 schreiben. Denn der Ausdruck 18 < age ergibt true oder false. Und true < 65 (verschiedene Typen) geht nicht. Zumindest nicht in C#.

3. Logische Operationen

Im C# kannst du den Ausdruck 18 < age < 65 nicht schreiben – das ist syntaktisch falsch und das Programm wird nicht kompiliert.

Aber du kannst es so schreiben:


(18 < age) UND (age < 65)
Logischer Ausdruck mit zwei Bedingungen (auf Deutsch)

Natürlich steht da statt UND ein anderer logischer Operator, und genau darüber reden wir jetzt.

In C# gibt es drei logische Operatoren: AND (und), OR (oder) und NOT (nicht).

Gute Nachricht: Mit Klammern kannst du logische Ausdrücke beliebiger Komplexität bauen.
Schlechte Nachricht: Die C#-Entwickler haben sich entschieden, statt and, or und not die Zeichen aus C++ zu nehmen.

Logischer Operator Erwartung Realität
UND (∧) and &&
ODER (∨) or ||
NICHT (¬) not !

Hier ein paar Beispiele für logische Operatoren in C#:

Ausdruck Übersetzung Erklärung
(0 < a) && (a < 100) (0 < a) and (a < 100) (0 < a) UND (a < 100)
(!a) && (!b) (not a) and (not b) (NICHT a) UND (NICHT b)
!(!a || !b) not((not a) or (not b)) NICHT((NICHT a) ODER (NICHT b))

4. Wahrheitstabellen

Kurz zu den logischen Operationen.

Operator AND

Der Operator AND, auch UND, &&, Konjunktion oder logische Multiplikation genannt.

Ausdruck Ergebnis
true && true true
true && false false
false && true false
false && false false

Mit anderen Worten: Das Ergebnis ist nur dann true (wahr), wenn beide Werte im Ausdruck true (wahr) sind. In allen anderen Fällen ist das Ergebnis false (falsch).

Operator OR

Der Operator OR, auch ODER, ||, Disjunktion oder logische Addition genannt.

Ausdruck Ergebnis
true || true true
true || false true
false || true true
false || false false

Mit anderen Worten: Das Ergebnis ist true (wahr), wenn mindestens einer der Werte im Ausdruck true (wahr) ist. Nur wenn beide false sind, ist das Ergebnis false.

Operator NOT

Der Operator NOT, auch NICHT, !, Inversion genannt.

Ausdruck Ergebnis
! true false
! false true

Wechselt true zu false und umgekehrt.

Nützliche Ausdrücke:

Ausdruck Ergebnis
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b

5. Beispiele für logische Operationen: and, or, not

Die "UND"-Operation, AND, wird mit && geschrieben

Das Ergebnis ist nur dann wahr, wenn beide Variablen wahr sind.

int age = 16;
bool hasTicket = true;
bool canAttend = age >= 14 && hasTicket; // true (16 ist größer als 14 UND Ticket ist da)

Wenn du mindestens 14 bist UND ein Ticket hast – komm rein!

Die "ODER"-Operation, OR, wird mit (||) geschrieben

Das Ergebnis ist wahr, wenn mindestens eine Bedingung wahr ist.

bool isAdmin = false;
bool isModerator = true;
bool canEdit = isAdmin || isModerator; // true (du darfst editieren, wenn wenigstens eins davon true ist)

Wenn du Admin ODER Moderator bist – bitte, drück die Buttons!

Die "NICHT"-Operation, NOT, wird mit (!) geschrieben

Der Inverter macht aus wahr falsch und umgekehrt.

bool isWeekend = false;
bool shouldGoToWork = !isWeekend; // true (wenn nicht Wochenende, arbeiten wir)

Wenn NICHT Wochenende ist – aufstehen!

Kombinieren: Bau dir Bedingungen so kompliziert wie du willst

Du kannst beliebig viele logische Operationen kombinieren (übertreib's aber nicht, sonst kommt sowas raus wie "wenn er nicht NICHT nicht NICHT Admin ist..."). Klammern kann (und sollte!) man für die Übersicht nutzen.

Beispiel:

int age = 17;
bool hasTicket = false;
bool isVip = true;

bool canGo = (age >= 18 && hasTicket) || isVip; // true, weil isVip = true

In diesem Beispiel gilt: Wenn jemand volljährig ist und ein Ticket hat, oder wenn er VIP ist – darf er rein. Wenn nicht VIP – dann nur, wenn erwachsen und mit Ticket.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION