Ternary Operator in C Explained

Programmører bruker den ternære operatøren for beslutningstaking i stedet for lengre hvis og ellers betingede uttalelser.

Den ternære operatøren tar tre argumenter:

  1. Den første er et sammenligningsargument
  2. Det andre er resultatet av en sann sammenligning
  3. Den tredje er resultatet av en falsk sammenligning

Det hjelper å tenke på den ternære operatøren som en kort beskrivelse eller å skrive en if-else-uttalelse. Her er et enkelt beslutningseksempel som bruker if and else :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

Dette eksemplet tar mer enn ti linjer, men det er ikke nødvendig. Du kan skrive ovennevnte program i bare tre linjer med kode ved hjelp av en ternær operatør.

Syntaks

condition ? value_if_true : value_if_false

Uttalelsen evaluerer til value_if_trueom conditioner oppfylt, og value_if_falseellers.

Her er eksemplet ovenfor omskrevet for å bruke den ternære operatøren:

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

Resultatet av eksemplet ovenfor skal være:

10

cer satt lik a, fordi tilstanden a < bvar oppfylt.

Husk at argumentene value_if_trueog value_if_falsemå være av samme type, og de må være enkle uttrykk snarere enn fullstendige uttalelser.

Ternære operatører kan nestes akkurat som if-else utsagn. Vurder følgende kode:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

Her er koden ovenfor omskrevet med en nestet ternær operatør:

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

Utgangen fra begge settene med kode ovenfor skal være:

3