Програмісти використовують трійковий оператор для прийняття рішень замість довших умовних операторів if і else .
Трійковий оператор бере три аргументи:
- Перший - це аргумент порівняння
- Другий - це результат правдивого порівняння
- Третій - це результат помилкового порівняння
Це допомагає думати про тернарний оператор як про скорочений спосіб або про написання оператора if-else. Ось простий приклад прийняття рішень з використанням if та else :
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
повинні бути однотипними, і вони повинні бути простими виразами, а не повними твердженнями.
Тернарні оператори можна вкладати так само, як оператори if-else. Розглянемо такий код:
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