Den villkorliga operatören är också känd som en ternär operatör . De villkorliga uttalandena är beslutsfattande uttalanden som beror på resultatet av uttrycket. Det representeras av två symboler, d.v.s. '?' och ':'.
Eftersom villkorlig operator fungerar på tre operander, så är den också känd som den ternära operatorn.
Beteendet för den villkorliga operatorn liknar ' om annat ' uttalande som 'om-annat' uttalande är också ett beslutsfattande uttalande.
Syntax för en villkorlig operator
Expression1? expression2: expression3;
Den bildliga representationen av ovanstående syntax visas nedan:
Innebörden av ovanstående syntax.
- I ovanstående syntax är expression1 ett booleskt villkor som kan vara antingen sant eller falskt.
- Om expression1 resulterar i ett sant värde, kommer expression2 att köras.
- Uttrycket2 sägs vara sant endast när det returnerar ett värde som inte är noll.
- Om expression1 returnerar ett falskt värde kommer expression3 att köras.
- Uttrycket3 sägs vara falskt endast när det returnerar nollvärde.
Låt oss förstå den ternära eller villkorliga operatorn genom ett exempel.
#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; }
I ovanstående kod tar vi indata som användarens 'ålder'. Efter att ha tagit in input har vi tillämpat villkoret genom att använda en villkorlig operator. I detta tillstånd kontrollerar vi användarens ålder. Om användarens ålder är högre än eller lika med 18, kommer uttalandet1 att köras, d.v.s. (printf('kvalificerad för att rösta')) annars kommer statement2 att köras, dvs. (printf('inte röstberättigad') ).
Låt oss observera resultatet av programmet ovan.
Om vi anger åldern för användare under 18 år, blir resultatet:
Om vi anger åldern för användare över 18 år, skulle resultatet vara:
Som vi kan observera från ovanstående två utgångar att om villkoret är sant, så exekveras påståendet1; annars kommer statement2 att köras.
Hittills har vi observerat att hur villkorlig operatör kontrollerar villkoret och baserat på villkoret exekverar den satserna. Nu kommer vi att se hur en villkorlig operator används för att tilldela värdet till en variabel.
var finns webbläsarinställningarna
Låt oss förstå detta scenario genom ett exempel.
#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; }
I koden ovan har vi deklarerat två variabler, d.v.s. 'a' och 'b', och tilldelar 5-värdet till variabeln 'a'. Efter deklarationen tilldelar vi värde till variabeln 'b' genom att använda den villkorliga operatorn. Om värdet på 'a' är lika med 5 så tilldelas 'b' ett 3-värde annars 2.
Produktion
Ovanstående utdata visar att värdet på variabeln 'b' är 3 eftersom värdet på variabeln 'a' är lika med 5.
Som vi vet att beteendet hos villkorlig operator och 'om-annat' är liknande men de har vissa skillnader. Låt oss titta på deras skillnader.
- En villkorlig operator är en enkel programmeringssats, medan 'if-else'-satsen är ett programmeringsblock där satser kommer under parentes.
- En villkorlig operator kan också användas för att tilldela ett värde till variabeln, medan 'om-else'-satsen inte kan användas för tilldelningsändamålet.
- Det är inte användbart för att köra satserna när satserna är multipla, medan 'if-else'-satsen visar sig vara mer lämplig när du kör flera satser.
- Den kapslade ternära operatorn är mer komplex och kan inte enkelt felsökas, medan den kapslade 'om-else'-satsen är lätt att läsa och underhålla.