logo

Entscheidungsfindung in C (if, if..else, Nested if, if-else-if)

Der bedingte Anweisungen (auch bekannt als Entscheidungskontrollstrukturen) wie if, if else, switch usw. werden für Entscheidungszwecke in C-Programmen verwendet.

Sie werden auch als Entscheidungsanweisungen bezeichnet und werden verwendet, um eine oder mehrere Bedingungen zu bewerten und die Entscheidung zu treffen, ob eine Reihe von Anweisungen ausgeführt werden sollen oder nicht. Diese Entscheidungsanweisungen in Programmiersprachen bestimmen die Richtung des Programmausführungsflusses.



Bedarf an bedingten Anweisungen

Es gibt Situationen im wirklichen Leben, in denen wir Entscheidungen treffen müssen und auf der Grundlage dieser Entscheidungen entscheiden, was wir als nächstes tun sollen. Ähnliche Situationen treten auch beim Programmieren auf, wenn wir einige Entscheidungen treffen müssen und auf der Grundlage dieser Entscheidungen den nächsten Codeblock ausführen. Wenn beispielsweise in C x auftritt, wird y ausgeführt, andernfalls wird z ausgeführt. Es kann auch mehrere Bedingungen wie in C geben, wenn x auftritt, dann führe p aus, andernfalls, wenn Bedingung y auftritt, führe q aus, andernfalls führe r aus. Diese Bedingung von C else-if ist eine der vielen Möglichkeiten, mehrere Bedingungen zu importieren.

Arten von bedingten Anweisungen in C

Im Folgenden finden Sie die in C verfügbaren Entscheidungsaussagen:

  1. if-Anweisung
  2. if-else-Anweisung
  3. Verschachtelte if-Anweisung
  4. if-else-if-Leiter
  5. switch-Anweisung
  6. Bedingter Operator
  7. Sprunganweisungen:
    • brechen
    • weitermachen
    • gehe zu
    • zurückkehren

Lassen Sie uns jeden einzelnen davon einzeln besprechen.



1. wenn in C

Der if-Anweisung ist die einfachste Entscheidungsaussage. Es wird verwendet, um zu entscheiden, ob eine bestimmte Anweisung oder ein bestimmter Anweisungsblock ausgeführt wird oder nicht, d. h. wenn eine bestimmte Bedingung erfüllt ist, wird ein Anweisungsblock ausgeführt, andernfalls nicht.

Syntax der if-Anweisung

  if  (  condition  )  {    // Statements to execute if     // condition is true  }>

Hier das Zustand nach der Auswertung wird entweder wahr oder falsch sein. C if-Anweisung akzeptiert boolesche Werte – wenn der Wert wahr ist, wird der darunter liegende Anweisungsblock ausgeführt, andernfalls nicht. Wenn wir die geschweiften Klammern „{“ und „}“ nach if(condition) nicht angeben, geht die if-Anweisung standardmäßig davon aus, dass sich die erste direkt darunter liegende Anweisung innerhalb ihres Blocks befindet.

Flussdiagramm der if-Anweisung

wenn Flussdiagramm

Flussdiagramm der if-Anweisung



Beispiel für if in C

C




// C program to illustrate If statement> #include> > int> main()> {> >int> i = 10;> > >if> (i>15) {> >printf>(>'10 is greater than 15'>);> >}> > >printf>(>'I am Not in if'>);> }>

>

>

Ausgabe

I am Not in if>

Da die in der if-Anweisung vorhandene Bedingung falsch ist. Daher wird der Block unter der if-Anweisung nicht ausgeführt.

2. if-else in C

Der Wenn Die Anweisung allein sagt uns, dass ein Anweisungsblock ausgeführt wird, wenn eine Bedingung wahr ist, und dass dies nicht der Fall ist, wenn die Bedingung falsch ist. Was aber, wenn wir etwas anderes tun wollen, wenn die Bedingung falsch ist? Hier kommt das C anders Stellungnahme. Wir können das nutzen anders Aussage mit der Wenn Anweisung, um einen Codeblock auszuführen, wenn die Bedingung falsch ist. Der if-else-Anweisung besteht aus zwei Blöcken, einem für den falschen Ausdruck und einem für den wahren Ausdruck.

Syntax von if else in C

  if   (  condition  ) {     // Executes this block if     // condition is true  }   else  {    // Executes this block if     // condition is false  }>

Flussdiagramm der if-else-Anweisung

Wenn sonst Flussdiagramm

Flussdiagramm von if else

Beispiel für if-else

C




// C program to illustrate If statement> #include> > int> main()> {> >int> i = 20;> > >if> (i <15) {> > >printf>(>'i is smaller than 15'>);> >}> >else> {> > >printf>(>'i is greater than 15'>);> >}> >return> 0;> }>

>

>

Ausgabe

i is greater than 15>

Der Codeblock, der auf folgt anders Die Anweisung wird als die in der vorhandene Bedingung ausgeführt Wenn Aussage ist falsch.

3. Verschachteltes if-else in C

Ein verschachteltes if in C ist eine if-Anweisung, die das Ziel einer anderen if-Anweisung ist. Unter verschachtelten if-Anweisungen versteht man eine if-Anweisung innerhalb einer anderen if-Anweisung. Ja, C erlaubt uns, if-Anweisungen innerhalb von if-Anweisungen zu verschachteln, d. h. wir können eine if-Anweisung in eine andere if-Anweisung einfügen.

verknüpfte Liste Java

Syntax von verschachtelten if-else

  if   (  condition1  )  {    // Executes when condition1 is true     if   (  condition2  )   {     // Executes when condition2 is true   }    else   {    // Executes when condition2 is false  }>

Flussdiagramm von verschachtelten if-else

Flussdiagramm von verschachtelten if-else

Beispiel für verschachteltes if-else

C




// C program to illustrate nested-if statement> #include> > int> main()> {> >int> i = 10;> > >if> (i == 10) {> >// First if statement> >if> (i <15)> >printf>(>'i is smaller than 15 '>);> > >// Nested - if statement> >// Will only be executed if statement above> >// is true> >if> (i <12)> >printf>(>'i is smaller than 12 too '>);> >else> >printf>(>'i is greater than 15'>);> >}> > >return> 0;> }>

>

>

Ausgabe

i is smaller than 15 i is smaller than 12 too>

4. if-else-if-Leiter in C

Der if else if-Anweisungen werden verwendet, wenn der Benutzer zwischen mehreren Optionen entscheiden muss. Die C-if-Anweisungen werden von oben nach unten ausgeführt. Sobald eine der Bedingungen, die das If steuern, wahr ist, wird die diesem If zugeordnete Anweisung ausgeführt und der Rest der C-Else-If-Leiter wird umgangen. Wenn keine der Bedingungen wahr ist, wird die letzte else-Anweisung ausgeführt. Die if-else-if-Leiter ähnelt der switch-Anweisung.

Syntax der if-else-if-Leiter

  if   (  condition  )    statement;    else if   (  condition  )    statement;  . .   else     statement;>

Flussdiagramm der If-Else-If-Leiter

Flussdiagramm der if-else-if-Anweisung

Flussdiagramm von if-else-if

Beispiel einer if-else-if-Leiter

C




// C program to illustrate nested-if statement> #include> > int> main()> {> >int> i = 20;> > >if> (i == 10)> >printf>(>'i is 10'>);> >else> if> (i == 15)> >printf>(>'i is 15'>);> >else> if> (i == 20)> >printf>(>'i is 20'>);> >else> >printf>(>'i is not present'>);> }>

>

>

Ausgabe

i is 20>

5. switch-Anweisung in C

Der switch case-Anweisung ist eine Alternative zur if else if-Leiter, mit der der bedingte Code basierend auf dem Wert der in der switch-Anweisung angegebenen Variablen ausgeführt werden kann. Der Switch-Block besteht aus Fällen, die basierend auf dem Wert der Switch-Variablen ausgeführt werden sollen.

Syntax des Schalters

  switch   (  expression  ) {    case     value1:     statements;     case    value2:     statements;   ....  ....  ....    default:     statements;  }>

Notiz: Der Schalterausdruck sollte entweder eine Ganzzahl oder ein Zeichen ergeben. Es kann keinen anderen Datentyp auswerten.

Flussdiagramm des Schalters

Flussdiagramm der Switch-Anweisung

Flussdiagramm des Wechsels in C

Beispiel einer switch-Anweisung

C




// C Program to illustrate the use of switch statement> #include> > int> main()> {> >// variable to be used in switch statement> >int> var = 2;> > >// declaring switch cases> >switch> (var) {> >case> 1:> >printf>(>'Case 1 is executed'>);> >break>;> >case> 2:> >printf>(>'Case 2 is executed'>);> >break>;> >default>:> >printf>(>'Default Case is executed'>);> >break>;> >}> > >return> 0;> }>

>

>

Ausgabe

Case 2 is executed>

6. Bedingungsoperator in C

Der Bedingungsoperator wird verwendet, um bedingten Code in unser Programm einzufügen. Es ähnelt der if-else-Anweisung. Er wird auch als ternärer Operator bezeichnet, da er mit drei Operanden arbeitet.

Syntax des bedingten Operators

(  condition  )   ?     [true_statements]     :     [false_statements]  ;>

Flussdiagramm des bedingten Operators

Flussdiagramm bedingter Operatoren

Flussdiagramm des bedingten Operators

Beispiel eines bedingten Operators

C




// C Program to illustrate the use of conditional operator> #include> > // driver code> int> main()> {> > >int> var;> >int> flag = 0;> > >// using conditional operator to assign the value to var> >// according to the value of flag> >var = flag == 0 ? 25 : -25;> >printf>(>'Value of var when flag is 0: %d '>, var);> > >// changing the value of flag> >flag = 1;> >// again assigning the value to var using same statement> >var = flag == 0 ? 25 : -25;> >printf>(>'Value of var when flag is NOT 0: %d'>, var);> > >return> 0;> }>

>

>

Ausgabe

Value of var when flag is 0: 25 Value of var when flag is NOT 0: -25>

7. Sprunganweisungen in C

Diese Anweisungen werden in C für den bedingungslosen Kontrollfluss über die Funktionen in einem Programm verwendet. Sie unterstützen vier Arten von Sprunganweisungen:

A) brechen

Mit dieser Schleifenkontrollanweisung wird die Schleife beendet. Sobald brechen Wenn innerhalb einer Schleife auf eine Anweisung gestoßen wird, stoppen die Schleifeniterationen dort und die Steuerung kehrt von der Schleife sofort zur ersten Anweisung nach der Schleife zurück.

Syntax von break

break;>

Grundsätzlich werden Break-Anweisungen in Situationen verwendet, in denen wir uns über die tatsächliche Anzahl der Iterationen der Schleife nicht sicher sind oder die Schleife aufgrund einer bestimmten Bedingung beenden möchten.

Pausenflussdiagramm

Beispiel einer Pause

C




// C program to illustrate> // to show usage of break> // statement> #include> > void> findElement(>int> arr[],>int> size,>int> key)> {> >// loop to traverse array and search for key> >for> (>int> i = 0; i if (arr[i] == key) { printf('Element found at position: %d', (i + 1)); break; } } } int main() { int arr[] = { 1, 2, 3, 4, 5, 6 }; // no of elements int n = 6; // key to be searched int key = 3; // Calling function to find the key findElement(arr, n, key); return 0; }>

>

>

Ausgabe

Element found at position: 3>

B) weitermachen

Diese Schleifenkontrollanweisung ähnelt der break-Anweisung. Der weitermachen Stellungnahme ist dem der Pause entgegengesetzt Stellungnahme Anstatt die Schleife zu beenden, wird die Ausführung der nächsten Iteration der Schleife erzwungen.
Wie der Name schon sagt, zwingt die continue-Anweisung die Schleife dazu, fortzufahren oder die nächste Iteration auszuführen. Wenn die continue-Anweisung in der Schleife ausgeführt wird, wird der Code in der Schleife, der auf die continue-Anweisung folgt, übersprungen und die nächste Iteration der Schleife beginnt.

Syntax von continue

continue;>

Flussdiagramm zum Fortfahren

Flussdiagramm der C-Continue-Anweisung

Beispiel für „Fortfahren“.

C




// C program to explain the use> // of continue statement> #include> > int> main()> {> >// loop from 1 to 10> >for> (>int> i = 1; i <= 10; i++) {> > >// If i is equals to 6,> >// continue to next iteration> >// without printing> >if> (i == 6)> >continue>;> > >else> >// otherwise print the value of i> >printf>(>'%d '>, i);> >}> > >return> 0;> }>

>

>

Ausgabe

1 2 3 4 5 7 8 9 10>

Wenn Sie in C eine Variable in if-else erstellen, ist sie nur für diesen if/else-Block lokal. Sie können globale Variablen innerhalb des if/else-Blocks verwenden. Wenn der Name der Variablen, die Sie in if/else erstellt haben, mit dem Namen einer globalen Variablen übereinstimmt, wird der „lokalen Variablen“ Priorität eingeräumt.

C




#include> > int> main()> {> > >int> gfg = 0;>// local variable for main> >printf>(>'Before if-else block %d '>, gfg);> >if> (1) {> >int> gfg = 100;>// new local variable of if block> >printf>(>'if block %d '>, gfg);> >}> >printf>(>'After if block %d'>, gfg);> >return> 0;> }>

>

Zeichenfolge in C++
>

Ausgabe

Before if-else block 0 if block 100 After if block 0>

C) gehe zu

Der goto-Anweisung In C wird es auch als unbedingte Sprunganweisung bezeichnet und kann verwendet werden, um innerhalb einer Funktion von einem Punkt zum anderen zu springen.

Syntax von goto

  Syntax1 | Syntax2  ----------------------------   goto     label;   |   label:   . | . . | . . | .   label:   |   goto     label;>

In der obigen Syntax weist die erste Zeile den Compiler an, zu der als Label markierten Anweisung zu gehen oder zu dieser zu springen. Hier ist ein Label ein benutzerdefinierter Bezeichner, der die Zielanweisung angibt. Die Anweisung unmittelbar nach „label:“ ist die Zielanweisung. Das „label:“ kann in der obigen Syntax auch vor der Anweisung „goto label;“ stehen.

Flussdiagramm der goto-Anweisung

Beispiele für goto

C




// C program to print numbers> // from 1 to 10 using goto> // statement> #include> > // function to print numbers from 1 to 10> void> printNumbers()> {> >int> n = 1;> label:> >printf>(>'%d '>, n);> >n++;> >if> (n <= 10)> >goto> label;> }> > // Driver program to test above function> int> main()> {> >printNumbers();> >return> 0;> }>

>

>

Ausgabe

1 2 3 4 5 6 7 8 9 10>

D) Rückkehr

Der zurückkehren in C gibt den Ablauf der Ausführung an die Funktion zurück, von der aus sie aufgerufen wird. Für diese Anweisung sind keine bedingten Anweisungen erforderlich. Sobald die Anweisung ausgeführt wird, stoppt der Programmfluss sofort und gibt die Steuerung von dort zurück, wo sie aufgerufen wurde. Die Return-Anweisung kann für eine Void-Funktion etwas zurückgeben oder auch nicht, aber für eine Nicht-Void-Funktion muss ein Rückgabewert zurückgegeben werden.

Flussdiagramm der Rückkehr

Rückflussdiagramm

Flussdiagramm der Rückgabe

Syntax der Rückgabe

  return    [expression]  ;>

Beispiel einer Rückgabe

C




// C code to illustrate return> // statement> #include> > // non-void return type> // function to calculate sum> int> SUM(>int> a,>int> b)> {> >int> s1 = a + b;> >return> s1;> }> > // returns void> // function to print> void> Print(>int> s2)> {> >printf>(>'The sum is %d'>, s2);> >return>;> }> > int> main()> {> >int> num1 = 10;> >int> num2 = 10;> >int> sum_of = SUM(num1, num2);> >Print(sum_of);> >return> 0;> }>

>

>

Ausgabe

The sum is 20>