Was ist eine bedingte Anweisung in C?
Bedingte Anweisungen in der C- Programmierung werden verwendet, um Entscheidungen basierend auf den Bedingungen zu treffen. Bedingte Anweisungen werden nacheinander ausgeführt, wenn keine Bedingung um die Anweisungen herum vorliegt. Wenn Sie eine Bedingung für einen Anweisungsblock festlegen, kann sich der Ausführungsablauf basierend auf dem von der Bedingung ausgewerteten Ergebnis ändern. Dieser Prozess wird in 'C' als Entscheidungsfindung bezeichnet.
In der 'C'-Programmierung sind bedingte Anweisungen mit Hilfe der folgenden zwei Konstrukte möglich:
1. If-Anweisung
2. If-else-Anweisung
Es wird auch als Verzweigung bezeichnet, da ein Programm basierend auf dem Ergebnis der ausgewerteten Bedingung entscheidet, welche Anweisung ausgeführt werden soll.
In diesem Tutorial lernen Sie:
- Was ist eine bedingte Erklärung?
- If-Anweisung
- Vergleichsoperatoren
- Die If-Else-Anweisung
- Bedingte Ausdrücke
- Verschachtelte If-else-Anweisungen
- Verschachtelte Else-if-Anweisungen
If-Anweisung
Es ist eine der mächtigen bedingten Aussagen. Die if-Anweisung ist für die Änderung des Ausführungsflusses eines Programms verantwortlich. 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 als 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 von geschweiften Klammern {} eingeschlossen wird.
Das folgende Programm veranschaulicht die Verwendung des if-Konstrukts in der C-Programmierung:
#includeint main(){int num1=1;int num2=2;if(num1 Ausgabe:
num1 is smaller than num2Das obige Programm veranschaulicht die Verwendung des if-Konstrukts zur Überprüfung der Gleichheit zweier Zahlen.
- Im obigen Programm haben wir zwei Variablen mit num1, num2 mit dem Wert 1 bzw. 2 initialisiert.
- Dann haben wir if mit einem Testausdruck verwendet, um zu überprüfen, welche Zahl die kleinste und welche Zahl die größte ist. Wir haben einen relationalen Ausdruck in if construct verwendet. Da der Wert von num1 kleiner als num2 ist, wird die Bedingung als wahr ausgewertet.
- Somit wird die Anweisung innerhalb des Blocks von If gedruckt. Danach verlässt die Steuerung den Block und das Programm wird mit einem erfolgreichen Ergebnis beendet.
Vergleichsoperatoren
C verfügt über sechs Vergleichsoperatoren, mit denen ein Boolescher Ausdruck zum Treffen einer Entscheidung und zum Testen von Bedingungen formuliert werden kann, der true oder false zurückgibt:
<= kleiner oder gleich
> größer als
> = größer oder gleich
== gleich
! = ungleich
Beachten Sie, dass sich der gleiche Test (==) vom Zuweisungsoperator (=) unterscheidet, da dies eines der häufigsten Probleme ist, mit denen ein Programmierer beim Verwechseln konfrontiert ist.
Zum Beispiel:
int x = 41;x =x+ 1;if (x == 42) {printf("You succeed!");}Ausgabe :
You succeedBeachten Sie, dass eine Bedingung, die einen Wert ungleich Null ergibt, als wahr betrachtet wird.
Zum Beispiel:
int present = 1;if (present)printf("There is someone present in the classroom \n");Ausgabe :
There is someone present in the classroomDie If-Else-Anweisung
Die if-else is-Anweisung ist eine erweiterte Version von If. Die allgemeine Form von if-else lautet wie folgt:
if (test-expression){True block of statements}Else{False block of statements}Statements;Wenn bei diesem Typ eines Konstrukts der Wert des Testausdrucks wahr ist, wird der wahre Anweisungsblock ausgeführt. Wenn der Wert des Testausdrucks falsch ist, wird der falsche Anweisungsblock ausgeführt. In jedem Fall wird das Steuerelement nach der Ausführung automatisch auf die Anweisungen übertragen, die außerhalb des If-Blocks erscheinen.
Die folgenden Programme veranschaulichen die Verwendung des if-else-Konstrukts:
Wir werden eine Variable mit einem bestimmten Wert initialisieren und ein Programm schreiben, um festzustellen, ob der Wert kleiner als zehn oder größer als zehn ist.
Lasst uns beginnen.
#includeint main(){int num=19;if(num<10){printf("The value is less than 10");}else{printf("The value is greater than 10");}return 0;} Ausgabe:
The value is greater than 10
- Wir haben eine Variable mit dem Wert 19 initialisiert. Wir müssen herausfinden, ob die Zahl größer oder kleiner als 10 ist, indem wir ein 'C'-Programm verwenden. 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 können, ist der erste Block immer ein wahrer Block. Wenn der Wert des Testausdrucks wahr ist, wird der erste Block ausgeführt, der If ist.
- 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 Block wird ausgeführt. Daher wird unsere Ausgabe von einem else-Block stammen, der "Der Wert ist größer als 10" ist. 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, die als Verschachtelung von if-else-Anweisungen bezeichnet werden.
Bedingte Ausdrücke
Eine andere Möglichkeit, eine if-else-Anweisung auszudrücken, besteht darin, den Operator ?: Einzuführen. In einem bedingten Ausdruck hat der Operator ?: Nur eine Anweisung, die dem if und dem else zugeordnet ist.
Zum Beispiel:
#includeint 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;} Ausgabe :
y =2Verschachtelte If-else-Anweisungen
Wenn eine Reihe von Entscheidungen erforderlich ist, wird verschachtelt, wenn-else verwendet wird. Verschachteln bedeutet, ein if-else-Konstrukt in einem anderen zu verwenden.
Schreiben wir ein Programm, um die Verwendung von verschachteltem if-else zu veranschaulichen.
#includeint 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;} Ausgabe:
The value is:1Das obige Programm prüft, ob eine Zahl kleiner oder größer als 10 ist, und druckt das Ergebnis mit einem verschachtelten if-else-Konstrukt.
- Zuerst haben wir eine Variable num mit dem Wert 1 deklariert. Dann haben wir das if-else-Konstrukt verwendet.
- Im äußeren if-else prüft die bereitgestellte Bedingung, ob eine Zahl kleiner als 10 ist. Wenn die Bedingung dann und nur dann wahr ist, führt sie die innere Schleife aus. In diesem Fall ist die Bedingung wahr, daher wird der innere Block verarbeitet.
- Im inneren Block haben wir wieder eine Bedingung, die prüft, ob unsere Variable den Wert 1 enthält oder nicht. Wenn eine Bedingung erfüllt ist, wird der If-Block verarbeitet, andernfalls wird ein else-Block verarbeitet. In diesem Fall ist die Bedingung erfüllt, daher wird Wenn ein Block ausgeführt wird und der Wert auf dem Ausgabebildschirm gedruckt wird.
- Das obige Programm druckt den Wert einer Variablen und beendet sie mit Erfolg.
Versuchen Sie, den Wert der Variablen zu ändern, um zu sehen, wie sich das Programm verhält.
HINWEIS: In verschachtelten if-else müssen wir mit dem Einzug vorsichtig sein, da mehrere if-else-Konstrukte an diesem Prozess beteiligt sind, sodass es schwierig wird, einzelne Konstrukte herauszufinden. Die richtige Einrückung erleichtert das Lesen des Programms.
Verschachtelte Else-if-Anweisungen
Verschachteltes else-if wird verwendet, wenn Mehrwegentscheidungen erforderlich sind.
Die allgemeine Syntax, wie sonst-wenn-Leitern in der C-Programmierung konstruiert werden, 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 Art von Struktur wird als else-if-Leiter bezeichnet. Diese Kette sieht im Allgemeinen wie eine Leiter aus, daher wird sie auch als sonstige Leiter bezeichnet. Die Testausdrücke werden von oben nach unten ausgewertet. Immer wenn ein echter Testausdruck gefunden wird, wird die ihm zugeordnete Anweisung ausgeführt. Wenn alle n Testausdrücke falsch werden, wird die Standardanweisung else ausgeführt.
Lassen Sie uns die tatsächliche Arbeit mit Hilfe eines Programms sehen.
#includeint 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;} Ausgabe:
First classDas obige Programm druckt die Note gemäß den in einem Test erzielten Noten. Wir haben das else-if-Ladder-Konstrukt im obigen Programm 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 Anweisung auf dem Ausgabebildschirm gedruckt wird.
- Wenn sich die erste Testbedingung als falsch herausstellt, wird sie mit der zweiten Bedingung verglichen.
- Dieser Vorgang wird fortgesetzt, bis der Ausdruck all ausgewertet ist. Andernfalls verlässt die Steuerung die else-if-Leiter und die Standardanweisung wird gedruckt.
Versuchen Sie, den Wert zu ändern, und bemerken Sie die Änderung in der Ausgabe.
Zusammenfassung
- Entscheidungsfindungs- oder Verzweigungsanweisungen werden verwendet, um einen Pfad basierend auf dem Ergebnis des ausgewerteten Ausdrucks auszuwählen.
- Es wird auch als Steueranweisung bezeichnet, da es den Ausführungsfluss eines Programms steuert.
- 'C' liefert if, if-else-Konstrukte für Entscheidungsaussagen.
- Wir können if-else auch ineinander verschachteln, wenn mehrere Pfade getestet werden müssen.
- Die else-if-Leiter wird verwendet, wenn wir basierend auf dem Ergebnis des Ausdrucks verschiedene Methoden überprüfen müssen.