Bedingte Anweisungen in C: If, Else, verschachtelte If-Anweisungen mit Beispiel
⚡ Intelligente Zusammenfassung
Bedingte Anweisungen in C steuern den Programmablauf, indem sie Codeblöcke nur dann ausführen, wenn eine geprüfte Bedingung als wahr ausgewertet wird. Dies ermöglicht Entscheidungsfindung durch if-, if-else-, verschachtelte und else-if-Leiterkonstrukte.

Was ist eine bedingte Anweisung in C?
Bedingte Anweisungen in der Programmiersprache C dienen dazu, Entscheidungen auf Grundlage von Bedingungen zu treffen. Ohne Bedingung werden bedingte Anweisungen sequenziell ausgeführt. Sobald eine Bedingung für einen Anweisungsblock definiert wird, kann sich der Ausführungsablauf je nach Ergebnis der Bedingungsauswertung ändern. Dieser Prozess wird in C als Entscheidungsfindung bezeichnet.
Im Gegensatz zu Schleifen in C Bei sich wiederholendem Code wählen bedingte Anweisungen einen Pfad.
In der C-Programmierung sind bedingte Anweisungen mit Hilfe der folgenden beiden Konstrukte möglich:
- If-Anweisung
- If-else-Anweisung
Es wird auch als Verzweigung bezeichnet, da ein Programm anhand des Ergebnisses der ausgewerteten Bedingung entscheidet, welche Anweisung ausgeführt werden soll.
If-Anweisung
Es ist eine der mächtigsten bedingten Anweisungen. Die If-Anweisung ist für die Änderung des Ausführungsflusses eines Programms verantwortlich. Die If-Anweisung wird immer mit einer Bedingung verwendet. Die Bedingung wird zuerst ausgewertet, bevor eine Anweisung im Hauptteil von If ausgeführt wird. Die Syntax für die if-Anweisung lautet wie folgt:
if (condition)
instruction;
Die Bedingung wird entweder als wahr oder falsch ausgewertet. True ist immer ein Wert ungleich Null und False ist ein Wert, der Null enthält. Anweisungen können eine einzelne Anweisung oder ein Codeblock sein, der in geschweifte Klammern {} eingeschlossen ist.
Das folgende Programm veranschaulicht die Verwendung der if-Konstruktion in der C-Programmierung:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
Ausgang:
num1 is smaller than num2
Das obige Programm veranschaulicht die Verwendung der if-Konstruktion zum Überprüfen der Gleichheit zweier Zahlen.
- Im obigen Programm haben wir zwei Variablen mit num1 und num2 mit den Werten 1 bzw. 2 initialisiert.
- Dann haben wir if mit einem Testausdruck verwendet, um zu überprüfen, welche Zahl die kleinste und welche die größte ist. Wir haben im if-Konstrukt einen relationalen Ausdruck verwendet. Da der Wert von num1 kleiner als num2 ist, wird die Bedingung als wahr ausgewertet.
- Daher wird die Anweisung innerhalb des If-Blocks gedruckt. Danach verlässt die Steuerung den Block und das Programm wird mit einem erfolgreichen Ergebnis beendet.
Relational Operatoren
C verfügt über sechs relationale Operatoren, mit denen sich ein boolescher Ausdruck formulieren lässt, um eine Entscheidung zu treffen und Bedingungen zu testen, der entweder wahr oder falsch zurückgibt:
<— weniger als<=— kleiner oder gleich>— größer als>=— größer oder gleich==— gleich!=— nicht gleich
Beachten Sie, dass sich der Gleichheitstest (==) vom Zuweisungsoperator (=) unterscheidet, da die Verwechslung beider Operatoren eines der häufigsten Probleme darstellt, mit denen ein Programmierer konfrontiert wird.
Beispielsweise:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
Ausgang:
You succeed
Beachten Sie, dass eine Bedingung, die einen Wert ungleich Null ergibt, als wahr gilt.
Beispielsweise:
int present = 1; if (present) printf("There is someone present in the classroom \n");
Ausgang:
There is someone present in the classroom
Die If-Else-Anweisung
Die if-else-Anweisung ist eine Erweiterung der if-Anweisung. Die allgemeine Form der if-else-Anweisung lautet wie folgt:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
Bei dieser Konstruktion wird der Anweisungsblock „wahr“ ausgeführt, wenn der Wert des Testausdrucks „wahr“ ist. Ist der Wert des Testausdrucks „falsch“, wird der Anweisungsblock „falsch“ ausgeführt. In jedem Fall wird die Programmausführung nach der Ausführung automatisch an die Anweisungen außerhalb des If-Blocks übergeben.
Die folgenden Programme veranschaulichen die Verwendung der if-else-Konstruktion:
Wir initialisieren eine Variable mit einem Wert und schreiben ein Programm, um festzustellen, ob der Wert kleiner als zehn oder größer als zehn ist.
Lasst uns beginnen.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
Ausgang:
The value is greater than 10
- Wir haben eine Variable mit dem Wert 19 initialisiert. Wir müssen mit einem „C“-Programm herausfinden, ob die Zahl größer oder kleiner als 10 ist. Dazu haben wir das if-else-Konstrukt verwendet.
- Hier haben wir eine Bedingung num<10 angegeben, da wir unseren Wert mit 10 vergleichen müssen.
- Wie Sie sehen, ist der erste Block immer ein wahrer Block. Das heißt, wenn der Wert von test-expression wahr ist, wird der erste Block, der If ist, ausgeführt.
- Der zweite Block ist ein else-Block. Dieser Block enthält die Anweisungen, die ausgeführt werden, wenn der Wert des Testausdrucks falsch wird. In unserem Programm ist der Wert von num größer als zehn, daher wird die Testbedingung falsch und der else-Block wird ausgeführt. Daher wird unsere Ausgabe von einem else-Block stammen, der „Der Wert ist größer als 10“ lautet. Nach dem if-else wird das Programm mit einem erfolgreichen Ergebnis beendet.
In der C-Programmierung können wir mehrere if-else-Konstrukte ineinander verwenden, was als Verschachtelung von if-else-Anweisungen bezeichnet wird.
Bedingte Ausdrücke
Eine weitere Möglichkeit, eine if-else-Anweisung auszudrücken, besteht in der Verwendung des ?:-Operators. In einem bedingten Ausdruck ist dem ?:-Operator nur eine Anweisung zugeordnet: die if- und die else-Anweisung.
Beispielsweise:
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
Ausgang:
y =2
Verschachtelte If-else-Anweisungen
Wenn eine Reihe von Entscheidungen erforderlich sind, wird verschachteltes if-else verwendet. Unter Verschachtelung versteht man die Verwendung eines if-else-Konstrukts innerhalb eines anderen.
Schreiben wir ein Programm, um die Verwendung von verschachtelten if-else-Funktionen zu veranschaulichen.
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
Ausgang:
The value is:1
Das obige Programm prüft, ob eine Zahl kleiner oder größer als 10 ist und gibt das Ergebnis mithilfe eines verschachtelten if-else-Konstrukts aus.
- Zuerst haben wir eine Variable num mit dem Wert 1 deklariert. Dann haben wir das if-else-Konstrukt verwendet.
- Die äußere if-else-Anweisung prüft, ob eine Zahl kleiner als 10 ist. Nur wenn die Bedingung erfüllt ist, wird der innere Block ausgeführt. In diesem Fall ist die Bedingung erfüllt, daher wird der innere Block verarbeitet.
- Im inneren Block prüft eine Bedingung, ob die Variable den Wert 1 enthält. Ist die Bedingung erfüllt, wird der If-Block ausgeführt, andernfalls der Else-Block. Da die Bedingung hier erfüllt ist, wird der If-Block ausgeführt und der Wert auf dem Bildschirm ausgegeben.
- Das obige Programm gibt den Wert einer Variablen aus und beendet sich mit einer Erfolgsmeldung.
Versuchen Sie, den Wert von zu ändern. Variable Schauen Sie sich an, wie sich das Programm verhält.
Hinweis: Bei verschachtelten if-else-Anweisungen ist auf die korrekte Einrückung zu achten, da mehrere if-else-Anweisungen beteiligt sind und die einzelnen Anweisungen sonst schwer zu erkennen sind. Eine korrekte Einrückung verbessert die Lesbarkeit des Programms.
Verschachtelte Else-if-Anweisungen
Verschachtelte else-if-Anweisungen werden verwendet, wenn Multipath-Entscheidungen erforderlich sind.
Die allgemeine Syntax für den Aufbau von Other-If-Kontaktplänen in der C-Programmierung lautet wie folgt:
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
Diese Struktur wird als „else-if-Leiter“ bezeichnet. Die Kette ähnelt einer Leiter, daher auch der Name. Die Testausdrücke werden von oben nach unten ausgewertet. Sobald ein Testausdruck als wahr erkannt wird, wird die zugehörige Anweisung ausgeführt. Sind alle n Testausdrücke falsch, wird die Standard-else-Anweisung ausgeführt.
Sehen wir uns die tatsächliche Funktionsweise mit Hilfe eines Programms an.
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
Ausgang:
First class
Das obige Programm druckt die Note entsprechend den in einem Test erzielten Noten aus. Wir haben im obigen Programm das else-if-Leiterkonstrukt verwendet.
- Wir haben eine Variable mit Markierungen initialisiert. In der Else-If-Leiterstruktur haben wir verschiedene Bedingungen bereitgestellt.
- Der Wert aus den Variablenmarkierungen wird mit der ersten Bedingung verglichen, da die damit verbundene Aussage wahr ist und auf dem Ausgabebildschirm gedruckt wird.
- Erweist sich die erste Testbedingung als falsch, wird sie mit der zweiten Bedingung verglichen.
- Dieser Prozess wird so lange fortgesetzt, bis alle Ausdrücke ausgewertet sind. Andernfalls verlässt die Steuerung die Else-If-Kette, und die Standardanweisung wird ausgegeben.
Versuchen Sie, den Wert zu ändern, und bemerken Sie die Änderung in der Ausgabe.





