programatorii folosesc operatorul ternar pentru luarea deciziilor în loc de declarații condiționale mai lungi dacă și altceva.
operatorul ternar ia trei argumente:
- primul este un argument de comparație
- al doilea este rezultatul unei comparații adevărate
- al treilea este rezultatul unei comparații false
ajută să ne gândim la operatorul ternar ca la o prescurtare sau să scriem o declarație if-else., Iată un exemplu simplu de luare a deciziilor folosind if and else:
int a = 10, b = 20, c;if (a < b) { c = a;}else { c = b;}printf("%d", c);
Acest exemplu durează mai mult de 10 linii, dar acest lucru nu este necesar. Puteți scrie programul de mai sus în doar 3 linii de cod folosind un operator ternar.
Sintaxa
condition ? value_if_true : value_if_false
declarația se evaluează la value_if_true
dacă condition
este îndeplinită, și value_if_false
în caz contrar.,
Iată exemplul anterior rescris pentru a utiliza operatorul ternar:
int a = 10, b = 20, c;c = (a < b) ? a : b;printf("%d", c);
Ieșire din exemplul de mai sus ar trebui să fie:
10
c
este egal cu a
, deoarece starea a < b
era adevărat.
Amintiți-vă că argumentele value_if_true
și value_if_false
trebuie să fie de același tip, și acestea trebuie să fie expresii simple, mai degrabă decât declarații complete.
operatorii ternari pot fi imbricate la fel ca If-else declarații., Luați în considerare următorul cod:
int a = 1, b = 2, ans;if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; }} else { ans = 0;}printf ("%d\n", ans);
Aici e codul de mai sus rescrisă folosind o imbricate operatorul ternar:
int a = 1, b = 2, ans;ans = (a == 1 ? (b == 2 ? 3 : 5) : 0);printf ("%d\n", ans);
ieșire de ambele seturi de cod de mai sus ar trebui să fie: