C If ... Else
Bedingungen und If-Anweisungen
Sie haben bereits gelernt, dass C die üblichen logischen Bedingungen aus der Mathematik unterstützt:
- Weniger als: a < b
- Gleich oder kleiner als: a <= b
- Größer als: a > b
- Größer als oder gleich wie: a >= b
- Gleich a == b
- Nicht gleichzusetzen mit: a != b
Sie können diese Bedingungen verwenden, um unterschiedliche Aktionen für unterschiedliche Entscheidungen durchzuführen.
C verfügt über die folgenden bedingten Anweisungen:
- Verwenden Sie
if
, um einen Codeblock anzugeben, der ausgeführt werden soll, wenn eine bestimmte Bedingung vorliegttrue
- Verwenden Sie
else
, um einen Codeblock anzugeben, der ausgeführt werden soll, wenn die gleiche Bedingung vorliegtfalse
- Verwenden Sie
else if
, um eine neue Bedingung zum Testen anzugeben, wenn die erste Bedingung erfüllt istfalse
- Verwenden Sie
switch
, um viele alternative Codeblöcke anzugeben, die ausgeführt werden sollen
Die if-Anweisung
Verwenden Sie die if
-Anweisung, um einen Codeblock anzugeben, der ausgeführt werden soll, wenn eine Bedingung erfüllt ist true
.
Syntax
if (Zustand) {
// Codeblock, der ausgeführt werden soll, wenn die Bedingung erfüllt ist true
}
Beachten Sie, dass if
in Kleinbuchstaben geschrieben ist. Großbuchstaben (If oder IF) erzeugen einen Fehler.
Im folgenden Beispiel testen wir zwei Werte, um herauszufinden, ob 20 größer als 18 ist. Wenn die Bedingung true
ist, geben Sie einen Text aus:
Wir können auch Variablen testen:
Beispiel erklärt
Im obigen Beispiel verwenden wir zwei Variablen, x und y, um zu testen, ob x größer als y ist (unter Verwendung des >
-Operator). Da x 20 und y 18 ist und wir wissen, dass 20 größer als 18 ist, geben wir auf dem Bildschirm aus, dass „x größer als y“ ist.
Die else-Anweisung
Verwenden Sie die Anweisung else
, um einen Codeblock anzugeben, der ausgeführt werden soll, wenn die Bedingung zutrifft false
.
Syntax
if (Zustand) {
// Codeblock, der ausgeführt werden soll, wenn die Bedingung erfüllt ist true
} else {
// Codeblock, der ausgeführt werden soll, wenn die Bedingung erfüllt ist false
}
Beispiel
int time = 20;
if (time < 18) {
printf("Guten Tag.");
} else {
printf("Guten Abend.");
}
// Ausgänge "Guten Abend."
Try it Yourself »
Beispiel erklärt
Im obigen Beispiel ist die Zeit (20) größer als 18, daher ist die Bedingung false
. Aus diesem Grund gehen wir zur else
-Bedingung über und geben auf dem Bildschirm „Guten Abend“ aus. Wenn die Zeit kleiner als 18 ist, gibt das Programm „Guten Tag“ aus.
Die else if-Anweisung
Verwenden Sie die Anweisung else if
, um eine neue Bedingung anzugeben, wenn die erste Bedingung lautet false
.
Syntax
if (Bedingung1) {
// Codeblock, der ausgeführt werden soll, wenn Bedingung1 vorhanden ist true
} else if (Bedingung2) {
// Codeblock, der ausgeführt werden soll, wenn Bedingung1 false und Bedingung2 true ist
} else {
// Codeblock, der ausgeführt werden soll, wenn Bedingung1 false und Bedingung2 false ist
}
Beispiel
int time = 22;
if (time < 10) {
printf("Guten Morgen.");
} else if (time < 20) {
printf("Guten Tag.");
} else {
printf("Guten Abend.");
}
// Outputs "Guten Abend."
Try it Yourself »
Beispiel erklärt
Im obigen Beispiel ist die Zeit (22) größer als 10, daher ist die erste Bedingung false
. Die nächste Bedingung in der else if
-Anweisung ist ebenfalls false
, also fahren wir mit dem else
-Bedingung, da condition1 und condition2 beide false
sind – und geben Sie auf dem Bildschirm „Guten Abend“ aus.
Wenn die Zeit jedoch 14 wäre, würde unser Programm „Guten Tag“ ausgeben.
Weitere Beispiele
Dieses Beispiel zeigt, wie Sie if..else
verwenden können, um „eine Tür zu öffnen“, wenn der Benutzer den richtigen Code eingibt:
Beispiel
int doorCode = 1337;
if (doorCode == 1337) {
printf("Richtiger Code.\nDie Tür ist jetzt offen.");
} else {
printf("Falscher Code.\nDie Tür bleibt geschlossen.");
}
Try it Yourself »
Dieses Beispiel zeigt, wie Sie mit if..else
herausfinden können, ob eine Zahl positiv oder negativ ist:
Beispiel
int myNum = 10; // Ist das eine positive oder negative Zahl?
if (myNum > 0) {
printf("Der Wert ist eine positive Zahl.");
} else if (myNum < 0) {
printf("Der Wert ist eine negative Zahl.");
} else {
printf("Der Wert ist 0.");
}
Try it Yourself »