logo

Bedingungsoperator in C

Der bedingte Operator wird auch als a bezeichnet ternärer Operator . Die bedingten Anweisungen sind die Entscheidungsanweisungen, die von der Ausgabe des Ausdrucks abhängen. Es wird durch zwei Symbole dargestellt, nämlich „?“ Und ':'.

Da der bedingte Operator mit drei Operanden arbeitet, wird er auch als ternärer Operator bezeichnet.

Das Verhalten des Bedingungsoperators ähnelt dem von ' ansonsten '-Anweisung als 'if-else'-Anweisung ist auch eine Entscheidungsaussage.

Syntax eines bedingten Operators

 Expression1? expression2: expression3; 

Die bildliche Darstellung der obigen Syntax ist unten dargestellt:

Bedingungsoperator in C

Bedeutung der obigen Syntax.

  • In der obigen Syntax ist „expression1“ eine boolesche Bedingung, die entweder den Wert „true“ oder „false“ annehmen kann.
  • Wenn Ausdruck1 einen wahren Wert ergibt, wird Ausdruck2 ausgeführt.
  • Der Ausdruck2 gilt nur dann als wahr, wenn er einen Wert ungleich Null zurückgibt.
  • Wenn Ausdruck1 einen falschen Wert zurückgibt, wird Ausdruck3 ausgeführt.
  • Der Ausdruck3 gilt nur dann als falsch, wenn er den Wert Null zurückgibt.

Lassen Sie uns den ternären oder bedingten Operator anhand eines Beispiels verstehen.

 #include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; } 

Im obigen Code verwenden wir als Eingabe das „Alter“ des Benutzers. Nach der Eingabe haben wir die Bedingung mithilfe eines Bedingungsoperators angewendet. In diesem Zustand überprüfen wir das Alter des Benutzers. Wenn das Alter des Benutzers größer oder gleich 18 Jahre ist, wird Anweisung1 ausgeführt, d. h. (printf('zur Abstimmung berechtigt')), andernfalls wird Anweisung2 ausgeführt, d. h. (printf('zur Abstimmung nicht berechtigt') ).

Schauen wir uns die Ausgabe des obigen Programms an.

Wenn wir das Alter des Benutzers unter 18 Jahren angeben, wäre die Ausgabe:

Bedingungsoperator in C

Wenn wir das Alter des Benutzers über 18 angeben, wäre die Ausgabe:

Bedingungsoperator in C

Wie wir anhand der beiden obigen Ausgaben erkennen können, wird Anweisung1 ausgeführt, wenn die Bedingung wahr ist. andernfalls wird Anweisung2 ausgeführt.

Bisher haben wir beobachtet, wie der bedingte Operator die Bedingung prüft und basierend auf der Bedingung die Anweisungen ausführt. Jetzt werden wir sehen, wie ein bedingter Operator verwendet wird, um den Wert einer Variablen zuzuweisen.

Primärschlüssel und zusammengesetzter Schlüssel in SQL

Lassen Sie uns dieses Szenario anhand eines Beispiels verstehen.

 #include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; } 

Im obigen Code haben wir zwei Variablen deklariert, nämlich „a“ und „b“, und weisen der Variablen „a“ einen Wert von 5 zu. Nach der Deklaration weisen wir der Variablen „b“ mithilfe des Bedingungsoperators einen Wert zu. Wenn der Wert von „a“ gleich 5 ist, wird „b“ der Wert 3 zugewiesen, andernfalls 2.

Ausgabe

Bedingungsoperator in C

Die obige Ausgabe zeigt, dass der Wert der Variablen „b“ 3 ist, da der Wert der Variablen „a“ gleich 5 ist.

Wie wir wissen, ist das Verhalten von Bedingungsoperatoren und „if-else“ ähnlich, es gibt jedoch einige Unterschiede. Schauen wir uns ihre Unterschiede an.

  • Ein bedingter Operator ist eine einzelne Programmieranweisung, während die „if-else“-Anweisung ein Programmierblock ist, in dem Anweisungen in Klammern stehen.
  • Ein bedingter Operator kann auch zum Zuweisen eines Werts zur Variablen verwendet werden, wohingegen die „if-else“-Anweisung nicht für den Zuweisungszweck verwendet werden kann.
  • Sie eignet sich nicht für die Ausführung von Anweisungen, wenn es sich um mehrere Anweisungen handelt, wohingegen sich die „if-else“-Anweisung bei der Ausführung mehrerer Anweisungen als geeigneter erweist.
  • Der verschachtelte ternäre Operator ist komplexer und kann nicht einfach debuggt werden, während die verschachtelte „if-else“-Anweisung einfach zu lesen und zu verwalten ist.