C-bedingte Anweisung: IF, IF Else und verschachteltes IF Else mit Beispiel
Was ist eine bedingte Anweisung in C?
Bedingte Anweisungen in C Mithilfe der Programmierung werden Entscheidungen auf der Grundlage der Bedingungen getroffen. Bedingte Anweisungen werden nacheinander ausgefรผhrt, wenn es keine Bedingung fรผr die Anweisungen gibt. Wenn Sie eine Bedingung fรผr einen Anweisungsblock festlegen, kann sich der Ausfรผhrungsablauf je nach 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 beiden Konstrukte mรถglich:
1. If-Anweisung
2. 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 zur Entscheidungsfindung und zum Testen von Bedingungen ein Boolescher Ausdruck formulieren lรคsst, der true oder false zurรผckgibt:
< weniger als
<= kleiner oder gleich
> grรถรer als
>= grรถรer oder gleich
== gleich
!= ungleich
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 is-Anweisung ist eine erweiterte Version von If. Die allgemeine Form von if-else ist wie folgt:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
Wenn bei diesem Konstrukttyp der Wert von test-expression wahr ist, wird der wahre Anweisungsblock ausgefรผhrt. Wenn der Wert von test-expression falsch ist, wird der falsche Anweisungsblock ausgefรผhrt. In jedem Fall wird die Kontrolle nach der Ausfรผhrung automatisch auf die Anweisungen รผbertragen, die auรerhalb des If-Blocks stehen.
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
Es gibt eine andere Mรถglichkeit, eine if-else-Anweisung auszudrรผcken, indem Sie Folgendes einfรผhren ?: Operator. In einem bedingten Ausdruck ist der ?: Der Operator hat nur eine Anweisung, die mit โifโ und โelseโ verknรผpft ist.
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.
- Im รคuรeren if-else prรผft die bereitgestellte Bedingung, ob eine Zahl kleiner als 10 ist. Wenn die Bedingung wahr ist, dann und nur dann, wird sie ausgefรผhrt innere Schleife. 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 ein else-Block. In diesem Fall ist die Bedingung erfรผllt, daher wird der If-Block ausgefรผhrt und der Wert auf dem Ausgabebildschirm gedruckt.
- Das obige Programm gibt den Wert von a aus Variable und mit Erfolg beenden.
Versuchen Sie, den Wert der Variablen zu รคndern und sehen Sie, wie sich das Programm verhรคlt.
Anmerkungen: Bei verschachtelten if-else-Anweisungen mรผssen wir mit der Einrรผckung vorsichtig sein, da an diesem Prozess mehrere if-else-Konstrukte beteiligt sind, sodass es schwierig wird, einzelne Konstrukte herauszufinden. Die richtige Einrรผckung erleichtert das Lesen 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 Art von Struktur wird als Sonst-Wenn-Leiter bezeichnet. Diese Kette sieht im Allgemeinen wie eine Leiter aus, daher wird sie auch als Sonst-Wenn-Leiter bezeichnet. Die Testausdrรผcke werden von oben nach unten ausgewertet. Immer wenn ein echter Testausdruck gefunden wird, wird die damit verbundene Anweisung ausgefรผhrt. Wenn alle n Testausdrรผcke falsch werden, wird die standardmรครige 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 Vorgang wird so lange fortgesetzt, bis alle Ausdrรผcke ausgewertet sind. 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
- Entscheidungs- oder Verzweigungsanweisungen werden verwendet, um einen Pfad basierend auf dem Ergebnis des ausgewerteten Ausdrucks auszuwรคhlen.
- Sie werden auch als Steueranweisungen bezeichnet, da sie den Ausfรผhrungsfluss eines Programms steuern.
- โCโ stellt if-, if-else-Konstrukte fรผr Entscheidungsanweisungen bereit.
- 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 Mรถglichkeiten prรผfen mรผssen.





