C Boolesche Werte
Boolesche Werte
Sehr oft benötigen Sie beim Programmieren einen Datentyp, der nur einen von zwei Werten haben kann, z:
- YES / NO
- ON / OFF
- TRUE / FALSE
Zu diesem Zweck verfügt C über einen Datentyp bool
, der als booleans bekannt ist.
Boolesche Werte stellen Werte dar, die entweder sind true
oder false
.
Boolesche Variablen
In C ist der Typ bool
kein integrierter Datentyp int
oder char
.
Es wurde in C99 eingeführt und Sie müssen die folgende Header-Datei importieren, um es verwenden zu können:
#include <stdbool.h>
Eine boolesche Variable wird mit dem Schlüsselwort bool
deklariert und kann nur die Werte annehmen true
oder false
:
bool isProgrammingFun = true;
bool isFishTasty = false;
Bevor Sie versuchen, die booleschen Variablen zu drucken, sollten Sie wissen, dass boolesche Werte als Ganzzahlen zurückgegeben werden:
1
(oder jede andere Zahl, die nicht 0 ist) darstellttrue
0
repräsentiertfalse
Daher müssen Sie den Formatbezeichner %d
verwenden, um einen booleschen Wert zu drucken:
Beispiel
// Erstellen Sie boolesche Variablen
bool isProgrammingFun = true;
bool isFishTasty = false;
// Gibt boolesche Werte zurück
printf("%d", isProgrammingFun); // Gibt 1 zurück (true)
printf("%d", isFishTasty); // Gibt 0 zurück (false)
Try it Yourself »
Es ist jedoch üblicher, einen booleschen Wert durch Vergleichen von Werten und Variablen zurückzugeben.
Werte und Variablen vergleichen
Der Vergleich von Werten ist beim Programmieren nützlich, da er uns hilft, Antworten zu finden und Entscheidungen zu treffen.
Sie können beispielsweise einen Vergleichsoperator verwenden, etwa größer als (>
)-Operator, um zwei Werte zu vergleichen:
Aus dem obigen Beispiel können Sie ersehen, dass der Rückgabewert ein boolescher Wert ist (1
).
Sie können auch zwei Variablen vergleichen:
Im folgenden Beispiel verwenden wir den Operator gleich (==
), um verschiedene Werte zu vergleichen:
Beispiel
printf("%d", 10 == 10); // Gibt 1 (true) zurück, da 10 gleich 10 ist
printf("%d", 10 == 15); // Gibt 0 (false) zurück, da 10 nicht gleich 15 ist
printf("%d", 5 == 55); // Gibt 0 (false) zurück, da 5 nicht gleich 55 ist
Try it Yourself »
Sie sind nicht darauf beschränkt, nur Zahlen zu vergleichen. Sie können auch boolesche Variablen oder sogar spezielle Strukturen wie Arrays vergleichen (über die Sie in einem späteren Kapitel mehr erfahren werden):
Beispiel
bool isHamburgerTasty = true;
bool isPizzaTasty = true;
// Finden Sie heraus, ob sowohl Hamburger als auch Pizza lecker sind
printf("%d", isHamburgerTasty == isPizzaTasty);
Try it Yourself »
Denken Sie daran, die Header-Datei <stdbool.h>
einzuschließen, wenn Sie mit bool
-Variablen arbeiten.
Beispiel aus dem wirklichen Leben
Stellen wir uns ein Beispiel aus dem „realen Leben“ vor, bei dem wir herausfinden müssen, ob eine Person alt genug ist, um zu wählen.
Im folgenden Beispiel verwenden wir den Vergleichsoperator >=
, um herauszufinden, ob das Alter (25
) ist größer ODER gleich der Wahlaltersgrenze, die auf festgelegt ist 18
:
Beispiel
int myAge = 25;
int votingAge = 18;
printf("%d", myAge >= votingAge); // Gibt 1 (wahr) zurück, was bedeutet, dass 25-Jährige wählen dürfen!
Try it Yourself »
Cool, oder? Ein noch besserer Ansatz (da wir gerade in Fahrt sind) wäre, den obigen Code in eine if...else
-Anweisung zu packen, damit wir verschiedene Aktionen ausführen können abhängig vom Ergebnis:
Beispiel
Ausgabe „Alt genug zum Wählen!“ wenn myAge
größer oder gleich 18
ist. Andernfalls wird „Nicht alt genug zum Wählen“ ausgegeben:
int myAge = 25;
int votingAge = 18;
if (myAge >= votingAge) {
printf("Alt genug, um zu wählen!");
} else {
printf("Nicht alt genug, um zu wählen.");
}
Try it Yourself »
Boolesche Werte sind die Grundlage für alle Vergleiche und Bedingungen.
Mehr über Bedingungen (if...else
) erfahren Sie im nächsten Kapitel.