Trīskāršais operators C paskaidrots

Programmētāji izmantot trīskāršo operators lēmumu pieņemšanā vietā ilgāk, ja un pārējais nosacīti paziņojumiem.

Trīskāršais operators izvirza trīs argumentus:

  1. Pirmais ir salīdzināšanas arguments
  2. Otrais ir rezultāts pēc patiesa salīdzinājuma
  3. Trešais ir rezultāts pēc nepatiesa salīdzinājuma

Tas palīdz domāt par trīskāršo operatoru kā par stenogrāfiju vai paziņojuma “ja-cits” rakstīšanu. Šeit ir vienkāršs lēmumu pieņemšanas piemērs, izmantojot ja un citu :

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

Šis piemērs aizņem vairāk nekā 10 rindas, taču tas nav nepieciešams. Iepriekšminēto programmu var rakstīt tikai 3 koda rindiņās, izmantojot trīslīmeņu operatoru.

Sintakse

condition ? value_if_true : value_if_false

Paziņojumā tiek vērtēts, value_if_truevai conditionir izpildīts, un value_if_falsecitādi.

Šeit ir iepriekš aprakstītais piemērs, kas pārrakstīts, lai izmantotu trīslīmeņu operatoru:

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

Iepriekš minētā piemēra iznākumam jābūt:

10

cir iestatīts vienāds ar a, jo nosacījums a < bbija patiess.

Atcerieties, ka argumentiem value_if_trueun value_if_falsetiem jābūt viena veida, un tiem jābūt vienkāršiem izteicieniem, nevis pilnīgiem izteikumiem.

Trīskārtējos operatorus var ligzdot tāpat kā if-else paziņojumus. Apsveriet šādu kodu:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

Šis kods ir pārrakstīts, izmantojot ligzdotu trīslīmeņu operatoru:

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

Abu iepriekš minēto kodu kopu izvadam jābūt:

3