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:

  1. Primul este un argument de comparație
  2. Al doilea este rezultatul unei comparații adevărate
  3. 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