Объяснение тернарного оператора в 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