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:
- Den første er et sammenligningsargument
- Det andet er resultatet af en ægte sammenligning
- 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_true
om den condition
er opfyldt, og value_if_false
ellers.
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
c
er lig med a
, fordi betingelsen a < b
var sand.
Husk, at argumenterne value_if_true
og value_if_false
skal 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