Wahrheitswert
Als Wahrheitswert (typische Bezeichnungen boolean
oder bool
nach der englischen Bezeichnung boolean value) bezeichnet man Variablen, die nur die Werte wahr oder falsch annehmen können. Zur Speicherung eines Wahrheitswertes genügt ein einzelnes Bit.
Anders ausgedrückt ist ein Wahrheitswert die Antwort auf eine Frage, die nur mit ja oder nein beantwortet werden kann.
Die Bedingung für eine bedingte Anweisung oder bedingte Wiederholung muss auch zu einem Wahrheitswert ausgewertet werden können.
Die Aussage Ich hab ein Haus, ein Äffchen und ein Pferd
kann wahr oder falsch sein. (In meinem Fall ist sie falsch. Das ist okay. Häuser, Äffchen und Pferde machen ganz schön viel Arbeit.) Damit beschreibt diese Aussage einen Wahrheitswert.
Mit Blick auf die Technische Informatik entsprechen Wahrheitswerte genau den Strömen, die durch logische Schaltnetze fließen oder in Schaltwerken verarbeitet werden. Wahr = Strom an, Falsch = Strom aus.
Operationen auf Wahrheitswerten
Es gibt spezielle Operationen auf Wahrheitswerten, die zur Aussagenlogik gehören. Die häufigsten Operatoren sind Und, Oder und Exklusiv-Oder. Je nach verwendeter Programmiersprache werden sie anders notiert. Eine Übersicht der verschiedenen Notationen ist hier in einer Übersicht zusammengestellt.
Sprache | Wahr | Falsch | Negation | Und | Oder |
---|---|---|---|---|---|
Visuelle Programmierung | |||||
Scratch | nicht <>
|
<> und <>
|
<> oder <>
| ||
AppInventor | |||||
NEPO | |||||
Textuelle Programmierung | |||||
Python | True
|
False
|
not
|
and
|
or
|
Java, C, JavaScript usw. | true
|
false
|
!
|
&&
|
||
|
Truthiness und falsiness
if ("hello") {
x = 4 || 5
}
In strikteren Programmiersprachen wie Java sind Zeilen wie diese völliger Blödsinn. Weder der String "hello"
noch die Zahlen 4
und 5
sind Wahrheitswerte und können darum auch nicht in einer bedingten Anweisung oder mit dem Operator ||
(Oder) verwendet werden.
In anderen Sprachen wie Python oder JavaScript ist das durchaus möglich. Dort gibt es das Konzept der truthiness bzw. falsiness (zu deutsch etwa Wahrigkeit und Falschigkeit). In diesen Sprachen gibt es feste Regeln, wie andere Datentypen als Wahrheitswerte interpretiert werden müssen. Grundsätzlich gilt: alle Werte sind truthy, mit folgenden Ausnahmen:
- Python
0
,0.0
,""
,[]
,{}
undNone
sind falsy- JavaScript
0
,""
,null
,undefined
,NaN
unddocument.all
sind falsy
Das Konzept der falsiness macht es leichter, zu prüfen, ob eine Variable gesetzt oder eine Eingabe getätigt worden ist:
name = ""
while not name:
name = input("Gib deinen Namen ein: ")
print("Hallo " + name)
Die bedingte Wiederholung in diesem Codeschnipsel wird so lange wiederholt, wie die Variable name
falsy ist, d.h. solange wie nichts eingegeben worden ist.