Checkmark on Circle.png

Wahrheitswert

Aus KGS-Wiki

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.

💬
Beispiel

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.

Wahrheitswerte in verschiedenen Sprachen
Sprache Wahr Falsch Negation Und Oder
Visuelle Programmierung
Scratch nicht <> <> und <> <> oder <>
AppInventor AI2 Block wahr.svg AI2 Block falsch.svg AI2 Block nicht.svg AI2 Block und.svg AI2 Block oder.svg
NEPO NEPO Block wahr.svg NEPO Block falsch.svg NEPO Block nicht.svg NEPO Block und.svg NEPO Block oder.svg
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, "", [], {} und None sind falsy
JavaScript
0, "", null, undefined, NaN und document.all sind falsy

Das Konzept der falsiness macht es leichter, zu prüfen, ob eine Variable gesetzt oder eine Eingabe getätigt worden ist:

💬
Beispiel
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.

Zum Weiterlesen