logo

Villkorlig eller ternär operatör (?:) i C

De villkorlig operatör i C är ungefär lik if-else-satsen eftersom den följer samma algoritm som if-else-satsen men den villkorliga operatorn tar mindre utrymme och hjälper till att skriva if-else-satserna på kortast möjliga sätt. Det är också känt som ternär operatör i C eftersom den verkar på tre operander.

Syntax för villkorlig/ternär operatör i C

Den villkorliga operatorn kan vara i formen

 variable = Expression1  ?  Expression2  :  Expression3 ;>

Eller syntaxen kan också vara i denna form



 variable = (condition)  ? Expression2  :  Expression3 ;>

Eller syntax kan också vara i denna form

 (condition)  ?  (variable = Expression2)  :  (variable = Expression3) ;>
villkorlig eller ternär operatör i c

Villkorlig/ternär operatör i C

Det kan visualiseras i en if-else-sats som:

if(Expression1) { variable = Expression2; } else { variable = Expression3; }>

Eftersom den villkorliga operatören '?:' tar tre operander för att fungera, kallas de därför också ternära operatörer .

Notera: Den ternära operatorn har tredje lägsta prioritet, så vi måste använda uttrycken så att vi kan undvika fel på grund av felaktig hantering av operatorprioritet.

Arbete som villkorlig/ternär operatör i C

Funktionen för den villkorliga operatören i C är som följer:

    Steg 1: Uttryck1 är villkoret som ska utvärderas. Steg 2A: Om villkoret( Uttryck 1 ) är sant då Uttryck 2 kommer att verkställas. Steg 2B : Om villkoret ( Uttryck 1 ) är falsk då Uttryck 3 kommer att verkställas. Steg 3: Resultaten kommer att returneras.

Flödesschema för villkorlig/ternär operatör i C

För att förstå hur det fungerar bättre kan vi analysera flödesschemat för den villkorliga operatören nedan.

abc med siffror
flödesschema för villkorlig/ternär operatör i c

Flödesschema för villkorlig/ternär operatör i C

Exempel på C ternär operatör

Exempel 1: C Program för att lagra det högsta av de två numren med den ternära operatorn

C




// C program to find largest among two> // numbers using ternary operator> > #include> > int> main()> {> >int> m = 5, n = 4;> > >(m>n) ?>printf>(>'m is greater than n that is %d>%d'>,> >m, n)> >:>printf>(>'n is greater than m that is %d>%d'>,> >n, m);> > >return> 0;> }>

ipconfig för ubuntu
>

>

Produktion

m is greater than n that is 5>4>

Exempel 2: C Program för att kontrollera om ett år är ett skottår med ternär operator

C




det är
// C program to check whether a year is leap year or not> // using ternary operator> > #include> > int> main()> {> >int> yr = 1900;> > >(yr%4==0) ? (yr%100!=0?>printf>(>'The year %d is a leap year'>,yr)> >: (yr%400==0 ?>printf>(>'The year %d is a leap year'>,yr)> >:>printf>(>'The year %d is not a leap year'>,yr)))> >:>printf>(>'The year %d is not a leap year'>,yr);> >return> 0;> }> > //This code is contributed by Susobhan AKhuli>

>

>

Produktion

The year 1900 is not a leap year>

Slutsats

Den villkorliga operatorn eller ternära operatorn i C används vanligtvis när vi behöver en kort villkorlig kod som att tilldela värde till en variabel baserat på villkoret. Det kan användas i större förhållanden men det kommer att göra programmet mycket komplext och oläsligt.

Vanliga frågor om villkorliga/ternära operatörer i C

1. Vad är den ternära operatorn i C?

Den ternära operatorn i C är en villkorlig operator som fungerar på tre operander. Det fungerar på samma sätt som if-else-satsen och exekverar koden baserat på det angivna villkoret. Det kallas även villkorlig operatör

2. Vilken är fördelen med den villkorliga operatören?

Det minskar kodraden när villkoret och satserna är små.