Објашњен тернарни оператер у Ц
Програмери користе троструки оператор за одлучивање у месту дуже ако и другде условних изјава.
Тернарни оператор узима три аргумента:
- Први је аргумент поређења
- Други је резултат истинитог поређења
- Трећи је резултат лажног поређења
Помаже размишљати о тернарном оператору као о скраћеном начину или писању иф-елсе изјаве. Ево једноставног примера одлучивања користећи иф и елсе :
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