De voorwaardelijke operator wordt ook wel a genoemd ternaire operator . De voorwaardelijke uitspraken zijn de besluitvormingsverklaringen die afhankelijk zijn van de uitvoer van de uitdrukking. Het wordt weergegeven door twee symbolen, namelijk '?' En ':'.
Omdat de voorwaardelijke operator op drie operanden werkt, wordt deze ook wel de ternaire operator genoemd.
Het gedrag van de voorwaardelijke operator is vergelijkbaar met de ' als-anders '-verklaring als 'if-else'-verklaring is ook een beslissingsverklaring.
Syntaxis van een voorwaardelijke operator
Expression1? expression2: expression3;
De grafische weergave van de bovenstaande syntaxis wordt hieronder weergegeven:
Betekenis van de bovenstaande syntaxis.
- In de bovenstaande syntaxis is expression1 een Booleaanse voorwaarde die de waarde True of False kan hebben.
- Als de expressie1 resulteert in een echte waarde, wordt expressie2 uitgevoerd.
- Er wordt alleen gezegd dat de expressie2 waar is als deze een waarde retourneert die niet nul is.
- Als de expressie1 een valse waarde retourneert, wordt de expressie3 uitgevoerd.
- Er wordt alleen gezegd dat de expressie3 onwaar is als deze de waarde nul retourneert.
Laten we de ternaire of voorwaardelijke operator begrijpen aan de hand van een voorbeeld.
#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; }
In de bovenstaande code nemen we de invoer als de 'leeftijd' van de gebruiker. Na invoer hebben we de voorwaarde toegepast met behulp van een voorwaardelijke operator. In deze toestand controleren we de leeftijd van de gebruiker. Als de leeftijd van de gebruiker groter is dan of gelijk is aan 18 jaar, wordt statement1 uitgevoerd, d.w.z. (printf('stemgerechtigd')), anders wordt statement2 uitgevoerd, d.w.z. (printf('niet stemgerechtigd') ).
Laten we de uitvoer van het bovenstaande programma bekijken.
Als we de leeftijd van de gebruiker onder de 18 jaar opgeven, zou de output het volgende zijn:
Als we de leeftijd van de gebruiker boven de 18 jaar opgeven, zou de uitvoer als volgt zijn:
Zoals we uit de twee bovenstaande resultaten kunnen opmaken, wordt statement1 uitgevoerd als de voorwaarde waar is; anders wordt statement2 uitgevoerd.
Tot nu toe hebben we gezien hoe de voorwaardelijke operator de voorwaarde controleert en op basis van de voorwaarde de instructies uitvoert. Nu zullen we zien hoe een voorwaardelijke operator wordt gebruikt om de waarde aan een variabele toe te kennen.
verschil tussen programma en script
Laten we dit scenario begrijpen aan de hand van een voorbeeld.
#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; }
In de bovenstaande code hebben we twee variabelen gedeclareerd, namelijk 'a' en 'b', en hebben we een waarde 5 toegekend aan de variabele 'a'. Na de declaratie kennen we waarde toe aan de variabele 'b' met behulp van de voorwaardelijke operator. Als de waarde van 'a' gelijk is aan 5, wordt aan 'b' een waarde 3 toegewezen, anders 2.
Uitvoer
Uit de bovenstaande uitvoer blijkt dat de waarde van variabele 'b' 3 is, omdat de waarde van variabele 'a' gelijk is aan 5.
Zoals we weten is het gedrag van de voorwaardelijke operator en 'if-else' vergelijkbaar, maar er zijn enkele verschillen. Laten we eens kijken naar hun verschillen.
- Een voorwaardelijke operator is een enkele programmeerinstructie, terwijl de 'if-else'-instructie een programmeerblok is waarin uitspraken tussen haakjes staan.
- Een voorwaardelijke operator kan ook worden gebruikt voor het toekennen van een waarde aan de variabele, terwijl de 'if-else'-instructie niet kan worden gebruikt voor het toewijzen.
- Het is niet nuttig voor het uitvoeren van instructies als de instructies meerdere zijn, terwijl de 'if-else'-instructie geschikter blijkt te zijn bij het uitvoeren van meerdere instructies.
- De geneste ternaire operator is complexer en kan niet gemakkelijk worden opgespoord, terwijl de geneste 'if-else'-instructie gemakkelijk te lezen en te onderhouden is.