Programatorii folosesc operator ternar pentru luarea deciziilor în loc de mai mult timp dacă și altceva enunțuri condiționate.
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
Vă ajută să vă gândiți la operatorul ternar ca pe o cale de scurtare sau să scrieți o declarație if-else. Iată un exemplu simplu de luare a deciziilor folosind dacă și altceva:
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 nu este necesar. Puteți scrie programul de mai sus în doar 3 linii de cod folosind un operator ternar.
Sintaxă
condition ? value_if_true : value_if_false
Declarația se evaluează la value_if_true
dacă condition
este îndeplinit și value_if_false
in caz contrar.
Iată exemplul de mai sus rescris pentru a utiliza operatorul ternar:
int a = 10, b = 20, c;
c = (a < b) ? a : b;
printf("%d", c);
Rezultatul exemplului de mai sus ar trebui să fie:
10
c
este setat 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 trebuie să fie mai degrabă expresii simple decât declarații complete.
Operatorii ternari pot fi imbricati la fel ca instructiunile if-else. 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 ("%dn", ans);
Iată codul de mai sus rescris folosind un operator ternar imbricat:
int a = 1, b = 2, ans;
ans = (a == 1 ? (b == 2 ? 3 : 5) : 0);
printf ("%dn", ans);
Ieșirea ambelor seturi de cod de mai sus ar trebui să fie:
3