Wahrheitswerte revisited #
Das Ergebnis eines Vergleichs kann »wahr« oder »falsch« sein #
int zahl = 3;
println(zahl == 2);
// false
println(zahl == 3);
// true
- Ein wichtiger Unterschied:
=
nimmt eine Zuweisung vor,==
einen Vergleich! - Das Ergebnis eines solchen Vergleichs ist entweder
true
(wahr) oderfalse
(falsch). true
undfalse
sind Wahrheitswerte. Obwohl es nur diese beiden gibt, haben sie einen eigenen Datentyp:boolean
Wahrheitswertvariablen #
// Die Variable zahl muss noch vorhanden sein!
boolean vergleich = zahl == 3;
- Auch Wahrheitswerte lassen sich in Variablen abspeichern, hier in der Variable
vergleich
. - Wie jede andere Variable hat
vergleich
einen Datentyp, nämlichboolean
.
boolean meinWahrheitswert = true;
- Wahrheitswerte lassen sich auch ohne Vergleich direkt einer Variable zuweisen.
Mehr Vergleichsoperatoren #
Hier nehmen wir an, dass a
und b
ganze Zahlen enthalten.
Operator | Bedeutung |
---|---|
a == b |
Ist a gleich b ? |
a != b |
Ist a ungleich b ? |
a < b |
Ist a kleiner als b ? |
a > b |
Ist a größer als b ? |
a <= b |
Ist a kleiner oder gleich b ? |
a >= b |
Ist a größer oder gleich b ? |
Logische Operatoren #
boolean mitRosinen = true;
boolean mitNüssen = false;
println("Im Müsli sind Nüsse und Rosinen.");
println(mitNüssen && mitRosinen);
println("Im Müsli sind Nüsse oder Rosinen.");
println(mitNüssen || mitRosinen);
- Sollen mehrere Wahrheitswerte verknüpft werden, ist das möglich.
- und überprüft, ob beide Wahrheitswerte wahr sind. Ist das nicht so, ist der ganze Ausdruck falsch. Im Programmcode schreiben wir
&&
. - oder überprüft, ob einer der beiden Wahrheitswerte wahr ist. Ist das nicht so, ist der ganze Ausdruck falsch. Im Programmcode schreiben wir
||
.
Rosinen | Nüsse | Nüsse && Rosinen | Nüsse || Rosinen |
---|---|---|---|
true |
true |
true |
true |
true |
false |
false |
true |
false |
true |
false |
true |
false |
false |
false |
false |
println("Im Müsli sind keine Rosinen.")
println(!mitRosinen)
!
dreht einen Wahrheitswert um.- Gedanklich können wir
!mitRosinen
also als nicht mit Rosinen lesen.
Rosinen | !Rosinen |
---|---|
true |
false |
false |
true |
Das Ergebnis eines Vergleichs kann »wahr« oder »falsch« sein #
zahl = 3;
print(zahl == 2)
# False
print(zahl == 3)
# True
- Ein wichtiger Unterschied:
=
nimmt eine Zuweisung vor,==
einen Vergleich! - Das Ergebnis eines solchen Vergleichs ist entweder
True
(wahr) oderFalse
(falsch). True
undFalse
sind Wahrheitswerte. Obwohl es nur diese beiden gibt, haben sie einen eigenen Datentyp:bool
Wahrheitswertvariablen #
# Die Variable zahl muss noch vorhanden sein!
vergleich = zahl == 3
- Auch Wahrheitswerte lassen sich in Variablen abspeichern, hier in der Variable
vergleich
. - Wie jede andere Variable hat
vergleich
einen Datentyp, nämlichbool
.
meinWahrheitswert = True
- Wahrheitswerte lassen sich auch ohne Vergleich direkt einer Variable zuweisen.
Mehr Vergleichsoperatoren #
Hier nehmen wir an, dass a
und b
ganze Zahlen enthalten.
Operator | Bedeutung |
---|---|
a == b |
Ist a gleich b ? |
a != b |
Ist a ungleich b ? |
a < b |
Ist a kleiner als b ? |
a > b |
Ist a größer als b ? |
a <= b |
Ist a kleiner oder gleich b ? |
a >= b |
Ist a größer oder gleich b ? |
Logische Operatoren #
mit_rosinen = True
mit_nüssen = False
print('Im Müsli sind Nüsse und Rosinen.')
print(mit_nüssen and mit_rosinen)
print('Im Müsli sind Nüsse oder Rosinen.')
print(mitNüssen or mitRosinen)
- Sollen mehrere Wahrheitswerte verknüpft werden, ist das möglich.
- und überprüft, ob beide Wahrheitswerte wahr sind. Ist das nicht so, ist der ganze Ausdruck falsch. Im Programmcode schreiben wir
and
. - oder überprüft, ob einer der beiden Wahrheitswerte wahr ist. Ist das nicht so, ist der ganze Ausdruck falsch. Im Programmcode schreiben wir
or
.
Rosinen | Nüsse | Nüsse and Rosinen |
Nüsse or Rosinen |
---|---|---|---|
True |
True |
True |
True |
True |
False |
False |
True |
False |
True |
False |
True |
False |
False |
False |
False |
print("Im Müsli sind keine Rosinen.")
print(not mit_rosinen)
not
dreht einen Wahrheitswert um.- Gedanklich können wir
not mitRosinen
also als nicht mit Rosinen lesen.
Rosinen | not Rosinen |
---|---|
true |
false |
false |
true |
Aufgabe: Wahrheitswertvariable #
Nimm an, du hast eine Variable vergleich
, die einen Wahrheitswert enthält. Macht es etwas aus, ob du vergleich
oder vergleich == true
(Java) bzw. vergleich == True
(Python) schreibst?
Schreibe ein Programm, um das auszuprobieren. (Drei Zeilen höchstens…)
Aufgabe: Viele Vergleiche #
Schreibe ein Programm, dass für zwei beliebige ganze Zahlen alle Vergleichsoperatoren ausprobiert.
Die Ausgabe sollte etwa so aussehen:
Gib einen Wert für a ein: 5
Gib einen Wert für b ein: 3
Ist a gleich b?
false
Ist a ungleich b?
true
Ist a kleiner als b?
false
Ist a größer als b?
true
Ist a kleiner oder gleich b?
false
Ist a größer oder gleich b?
true
Flashcards #
Welcher Datentyp ergibt sich aus dem Ausdruck
5 < 7
?Der Datentyp
boolean
.Der Datentyp
bool
.Gib einen logischen Ausdruck an, mit dem überprüft wird, ob eine Zahl, die in der Variable
zahl
abgespeichert ist, zwischen 8 und 13 liegt (jeweils einschließlich).zahl >= 8 && zahl <=13
zahl >= 8 and zahl <=13
Gib zwei logische Ausdrücke an, mit denen überprüft wird, ob eine Zahl, die in der Variable
zahl
abgespeichert ist, nicht zwischen 8 und 13 liegt.!(zahl >= 8 && zahl <=13)
zahl < 8 || zahl > 13
not (zahl >= 8 and zahl <=13)
zahl < 8 or zahl > 13
Gib die Antwort auf diese Frage mit Hilfe eines kleinen Programms.
Ist zwei mal eins plus eins drei oder vier?
boolean antwort = 2 * 1 + 1 == 3 || 2 * 1 + 1 == 4;
println(antwort); // true
antwort = 2 * 1 + 1 == 3 or 2 * 1 + 1 == 4
print(antwort) # True