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). trueundfalsesind 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 
vergleicheinen 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 
!mitRosinenalso 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). TrueundFalsesind 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 
vergleicheinen 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)
notdreht einen Wahrheitswert um.- Gedanklich können wir 
not mitRosinenalso 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