Објашњен тернарни оператер у Ц

Програмери користе троструки оператор за одлучивање у месту дуже ако и другде условних изјава.

Тернарни оператор узима три аргумента:

  1. Први је аргумент поређења
  2. Други је резултат истинитог поређења
  3. Трећи је резултат лажног поређења

Помаже размишљати о тернарном оператору као о скраћеном начину или писању иф-елсе изјаве. Ево једноставног примера одлучивања користећи иф и елсе :

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

Овај пример заузима више од 10 редова, али то није неопходно. Горњи програм можете написати у само 3 реда кода помоћу тернарног оператора.

Синтакса

condition ? value_if_true : value_if_false

Изјава процењује да value_if_trueли conditionје испуњено и у value_if_falseсупротном.

Ево горњег примера преписаног за употребу тернарног оператора:

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

Резултат горњег примера треба да буде:

10

cје постављено једнако a, јер је услов a < bбио тачан.

Запамтите да аргументи value_if_trueи value_if_falseморају бити исте врсте и морају бити једноставни изрази, а не пуни искази.

Тернарни оператори се могу угнездити баш као иф-елсе изрази. Узмите у обзир следећи код:

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

Ево горњег кода преписаног помоћу угнежђеног тернарног оператора:

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

Излаз оба скупа горњег кода требао би бити:

3