Ternárny operátor v jazyku C vysvetlený

Programátori použiť ternárne operátor pre rozhodovanie na mieste dlhšie , ak aj inde podmienené príkazy.

Ternárny operátor má tri argumenty:

  1. Prvý je porovnávací argument
  2. Druhým je výsledok na základe skutočného porovnania
  3. Tretí je výsledok nesprávneho porovnania

Pomáha myslieť na ternárneho operátora ako na skratku alebo na napísanie príkazu if-else. Tu je jednoduchý príklad rozhodovania pomocou if a else :

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

Tento príklad má viac ako 10 riadkov, ale nie je to potrebné. Vyššie uvedený program môžete napísať iba do 3 riadkov kódu pomocou ternárneho operátora.

Syntax

condition ? value_if_true : value_if_false

Vyhlásenie sa vyhodnotí, value_if_trueči conditionje splnené, a value_if_falseinak.

Tu je uvedený príklad prepísaný na použitie ternárneho operátora:

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

Výstup z vyššie uvedeného príkladu by mal byť:

10

cje nastavené rovnako a, pretože podmienka a < bbola pravdivá.

Pamätajte, že argumenty value_if_truea value_if_falsemusia byť rovnakého typu a musia to byť iba jednoduché výrazy a nie úplné výroky.

Ternárne operátory môžu byť vnorené rovnako ako príkazy if-else. Zvážte nasledujúci kód:

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

Tu je vyššie uvedený kód prepísaný pomocou vnoreného ternárneho operátora:

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

Výstup oboch vyššie uvedených kódov by mal byť:

3