Пояснення тернарного оператора в C

Програмісти використовують трійковий оператор для прийняття рішень замість довших умовних операторів if і else .

Трійковий оператор бере три аргументи:

  1. Перший - це аргумент порівняння
  2. Другий - це результат правдивого порівняння
  3. Третій - це результат помилкового порівняння

Це допомагає думати про тернарний оператор як про скорочений спосіб або про написання оператора 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