Zurück zu: C Tutorial
Wenn das Leben ‚if‘ sagt: Entdecke die Macht der Bedingungen in C!
Du hast bestimmt schon gehört, dass C die typischen logischen Bedingungen aus der Mathematik nutzt, um Entscheidungen zu treffen und Abläufe zu steuern:
Du hast bestimmt schon gehört, dass C die typischen logischen Bedingungen aus der Mathematik nutzt, um Entscheidungen zu treffen und Abläufe zu steuern:
- Kleiner als:
a < b
- Kleiner oder gleich:
a <= b
- Größer als:
a > b
- Größer oder gleich:
a >= b
- Gleich
a == b
- Ungleich:
a != b
Auf Basis dieser Bedingungen kannst du Entscheidungen treffen und für jede Entscheidung die passende Aktion ausführen.
C unterstützt die folgenden bedingten Anweisungen:
if
, um einen Codeblock anzugeben, der ausgeführt werden soll, wenn eine bestimmte Bedingungerfüllt
ist.else
, um einen Codeblock anzugeben, der ausgeführt werden soll, wenn dieselbe Bedingungfalsch
ist.else if
, um eine neue zu testende Bedingung anzugeben, wenn die erste Bedingungfalsch
ist.switch
, um mehrere alternative Codeblöcke anzugeben, die ausgeführt werden sollen.
Wenn… dann… was? – Die if Anweisung
Nutze die if
-Anweisung, um einen Codeblock festzulegen, der nur dann ausgeführt wird, wenn eine bestimmte Bedingung erfüllt
(wahr) ist.
Syntax
if (BEDINGUNG) {
// HIER STEHT DER CODE(BLOCK), DER AUSGEFÜHRT WIRD, WENN DIE BEDINGUNG WAHR IST
}
Vergiss nicht, dass „
if
“ immer in Kleinbuchstaben geschrieben wird. Wenn du es als „If“ oder „IF“ schreibst, bekommst du einen Fehler.
Im folgenden Beispiel testen wir zwei Werte, um herauszufinden, ob 20 größer als 18 ist. Wenn die Bedingung erfüllt
ist, geben wir den Text „20 ist größer als 18“ aus:
Beispiel
if (20 > 18) {
printf("20 ist größer als 18");
}
Wir können in der Bedinung auch Variablen testen:
Beispiel
int x = 20;
int y = 18;
if (x > y) {
printf("x ist größer als y");
}
In diesem Beispiel verwenden wir zwei Variablen, x und y, um zu überprüfen, ob x größer als y ist (mithilfe des Operators >). Da x den Wert 20 und y den Wert 18 hat und wir wissen, dass 20 größer als 18 ist, wird auf dem Bildschirm ausgegeben „x ist größer als y“.
Wenn A nicht klappt, kommt B – Ansonsten …
Nutze die else
-Anweisung, um einen Codeblock festzulegen, der ausgeführt wird, wenn die Bedingung falsch
(nicht wahr) ist.
Syntax
if (BEDINGUNG) {
// HIER STEHT DER CODE(BLOCK), DER AUSGEFÜHRT WIRD, WENN DIE BEDINGUNG WAHR IST
} else {
// HIER STEHT DER CODE(BLOCK), DER AUSGEFÜHRT WIRD, WENN DIE BEDINGUNG FALSCH IST
Beispiel
int time = 20;
if (time < 18) {
printf("Guten Tag.");
} else {
printf("Guten Abend.");
}
In diesem Beispiel haben wir eine einfache Entscheidung in C, die abhängig von der Zeit entweder „Guten Tag“ oder „Guten Abend“ ausgibt. Im Beispiel ist die Zeit/time (20) größer als 18, also ist die Bedingung falsch
. Aus diesem Grund gehen wir zur else
Bedingung über und geben „Guten Abend“ auf dem Bildschirm aus. Wenn die Zeit kleiner als 18 wäre, würde das Programm „Guten Tag“ ausgeben.
Wenn der Plan A scheitert, dann kommt else-if ins Spiel – Die else if Anweisung
Verwenden Sie die „else if
“ Anweisung, um eine neue Bedingung anzugeben, wenn die erste Bedingung falsch
ist.
Syntax
if (BEDINGUNG1) {
// HIER STEHT DER CODE(BLOCK), DER AUSGEFÜHRT WIRD, WENN DIE BEDINGUNG1 WAHR IST
} else if (BEDINGUNG2) {
// HIER STEHT DER CODE(BLOCK), DER AUSGEFÜHRT WIRD, WENN DIE BEDINGUNG1 FALSCH IST UND DIE BEDINGUNG2 WAHR IST
} else {
// HIER STEHT DER CODE(BLOCK), DER AUSGEFÜHRT WIRD, WENN DIE BEDINGUNG1 UND DIE BEDINGUNG2 FALSCH IST
}
Beispiel
int time = 22;
if (time < 10) {
printf("Guten Morgen.");
} else if (time < 20) {
printf("Guten Tag.");
} else {
printf("Guten Abend.");
}
// AUSGABE "Guten Abend."
In diesem Beispiel wird eine if-else-if-else-Bedingung verwendet, um basierend auf der Zeit (Variable time
) eine bestimmte Begrüßung auszugeben. Im obigen Beispiel ist die Zeit (22) größer als 10, also ist die erste Bedingung falsch
. Die nächste Bedingung in der else if
Anweisung ist ebenfalls falsch
(22 ist nicht kleiner als 20), also gehen wir zur else
Bedingung über, da sowohl Bedingung1 als auch Bedingung2 falsch sind – und geben „Guten Abend“ auf dem Bildschirm aus.
Für time = 14 (Uhr) würde unser Programm „Guten Tag“ ausgeben.
Ternärer Operator: Der schnelle Weg zu Entscheidungen im Code
Der ternäre Operator ermöglicht eine kompakte Schreibweise für eine if-else
-Anweisung, die aus drei Teilen besteht: einer Bedingung, einer Option für den Wahrfall und einer für den Falschfall. Statt mehrere Zeilen für eine einfache Entscheidungslogik zu schreiben, ermöglicht der ternäre Operator, dies in einer einzigen Zeile zu tun. Diese Schreibweise ist besonders praktisch, um einfache if-else
-Bedingungen effizient zu ersetzen und den Code kürzer und übersichtlicher zu gestalten.
Syntax
variable = (BEDINGUNG) ? WAHRFALL : FALSCHFALL;
Anstatt folgendes zu schreiben:
int time = 20;
if (time < 18) {
printf("Guten Tag.");
} else {
printf("Guten Abend.");
}
Kannst du einfach schreiben:
int time = 20;
(time < 18) ? printf("Guten Tag.") : printf("Guten Abend.");
Es liegt ganz bei dir, ob du lieber die traditionelle if…else-Anweisung oder den ternären Operator verwenden möchtest.
Weitere Beispiele
Im Folgenden Beispiel wird if..else
verwendet um eine „Tür“ zu öffnen, wenn der Benutzer den richtigen Code (doorCode) eingibt:
Beispiel
int doorCode = 1337;
if (doorCode == 1337) {
printf("Korrekte Eingabe.\nDie Tür ist jetzt offen.");
} else {
printf("Falsche Eingabe.\nDie Tür bleibt geschlossen.");
}
Dieses Beispiel zeigt, wie du mit „if..else
“ herausfinden kannst, ob eine Zahl positiv (d.h. > 0), negativ (d.h. < 0) oder 0 ist:
Beispiel
int zahl = 10;
if (zahl > 0) {
printf("Die Zahl ist positiv.");
} else if (zahl < 0) {
printf("Die Zahl ist negativ.");
} else {
printf("Die Zahl ist 0.");
}
Finde heraus, ob eine Person alt genug ist, um zu wählen:
Beispiel
int alter = 25;
int wahlberechtigtAb = 18;
if (alter >= wahlberechtigtAb) {
printf("Du bist wahlberechtigt!");
} else {
printf("Du bist noch nicht alt genug zum wählen.");
}
Finde heraus, ob eine Zahl gerade oder ungerade ist:
Beispiel
int zahl = 5;
if (zahl % 2 == 0) {
printf("%d ist gerade.\n", zahl);
} else {
printf("%d ist ungerade.\n", zahl);
}