Ternær operatør i C forklaret

Programmører bruger den ternære operatør til beslutningstagning i stedet for længere, hvis og ellers betingede udsagn.

Den ternære operatør tager tre argumenter:

  1. Den første er et sammenligningsargument
  2. Det andet er resultatet af en ægte sammenligning
  3. Den tredje er resultatet af en falsk sammenligning

Det hjælper med at tænke på den ternære operatør som en stenografisk måde eller skrive en if-else-erklæring. Her er et simpelt beslutningseksempel, der bruger if and else :

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

Dette eksempel tager mere end 10 linjer, men det er ikke nødvendigt. Du kan skrive ovenstående program i kun 3 linier kode ved hjælp af en ternær operatør.

Syntaks

condition ? value_if_true : value_if_false

Erklæringen vurderer, value_if_trueom den conditioner opfyldt, og value_if_falseellers.

Her er ovenstående eksempel omskrevet for at bruge den ternære operator:

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

Output af eksemplet ovenfor skal være:

10

cer lig med a, fordi betingelsen a < bvar sand.

Husk, at argumenterne value_if_trueog value_if_falseskal være af samme type, og de skal være enkle udtryk snarere end fulde udsagn.

Ternære operatører kan indlejres ligesom if-else-udsagn. Overvej 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 ved hjælp af en indlejret ternær operatør:

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

Outputtet fra begge sæt koder ovenfor skal være:

3