Найти в Дзене
D21nk Master

Одной операцией два ветвления

Вы уже прошли большой путь,если всё усвоили и регулярно практиковались-то наверняка вы в состоянии писать неплохие программы.Да,они простые и выполняют лишь одну задачу в консоли,но это создаёт большой плацдарм для более крупных программ.

Сегодня я вас познакомлю с любимой многими программистами тернарной операцией.Сперва разберём что же это такое.

До сих пор мы использовали только унарные и бинарные операции,то есть с одним или двумя выражениями.

Унарная операция:

int a=10;

//просто вызвали число зачем-то.Зачем-непонятно

//вы в замешательстве,компилятор в замешательстве,

//люди,которые откапают ваш код спустя миллион лет

//будут просто биться в догадках

a;

Одно выражение-унарная операция.Пример конечно не серьёзный,более серьёзный пример операция инкремента:

a++;

Бинарная операция:

int a=10;

int b=12;

int c=a+b;

И всё это бинарная операция,слева у нас один аргумент,справа другой.Всё просто.

Тернарная же операция принимает три выражения,сравнивая их.С её помощью можно в одну строчку заменить два условия от if/else.

Как это работает:

В скобках логическое выражение/сравнивание,после знак вопроса,что выполнить в случае истины,двоеточие,что выполнить в случае лжи.

(выражение)? истина : ложь;

int a=10;

int b=12;

(a==b)? printf("Equal!\n") : printf("Not equal!\n");

Прелесть данного оператора в том,что это,неожиданно оператор.То есть его можно вернуть из функции.

Как это можно сделать вам придётся поразмыслить самим.

В заключение добавлю,раз уж это оператор-это значит результат его выполнения можно легко сохранить в переменную:

int a=10;

int b=12;

char *c=(a==b)?"Equal" : "Not equal";

printf("%s\n",c);

Проверьте что будет.

С вами был D21nkMaster.Всего доброго!