Основы программирования на С++ для начинающих

Тернарный оператор ? : в C++

Надеюсь, вы хорошо  разобрались с темой операторы выбора if и else и вам не составило большого труда решить задачи по этой теме. В этом же уроке мы продолжаем изучать основы программирования на C++ и познакомимся еще с одним  оператором выбора (ветвления) – это тернарный оператор  ?  :

Используется он обычно в тех случаях, если условие и код, который надо выполнить, в результате проверки условия, очень простые. К примеру, спросить у пользователя хочет он продолжить работать в программе или же хочет выйти из неё. Синтаксис такой:

тернарный оператор ?:

Вначале надо  записать необходимое нам условие и за ним поставить знак вопроса ? .  Далее, в этой же строке, после знака вопроса пишем первую простую команду (код), которая будет выполняться, если условие вернет истину (true). После этой команды ставим двоеточие   и пишем вторую команду (код). Эта вторая команда после двоеточия, выполнится только в том случае, если условие возвращает ложь (false).

Пример. Допустим пользователь снимает деньги в банкомате. Он провел эту операцию и на экране должен появиться вопрос: “Вы хотите выполнить другую операцию?”  Пользователю остается сделать выбор (да или нет) и нажать соответствующую кнопку. Организуем этот выбор в следующей программе:

Пользователь делает выбор и вводит значение – строка 13. А в строке 15 мы проверяем введенное значение. Если условие variable == 1 возвращает true (то есть если переменная действительно равна 1), то выполнится код, расположенный после знака вопроса ? . А тот, что находится после двоеточия : – игнорируется. Иначе, если пользователь ввел 0, игнорируется код расположенный между ? и :  , а выполняется второй код.    Вот результат работы если введено 1:

тернарный оператор ?:

если 0:

тернарный оператор ?:

Вот еще один интересный пример. В нем, с помощью тернарного оператора, определяется минимальное и максимальное число из двух значений, которые введет пользователь.

Рассмотрим строку 20. Код будет выполняться так – вначале отработает тернарный оператор, вернет значение исходя из поставленного условия, а после это значение запишется в переменную max. Если условие (firstDigit > secondDigit) – истина, значение firstDigit   записывается в max , если ложь, то записывается значение secondDigit.    Далее должно быть всё понятно. Компилируем:

тернарный оператор ?:

Программа работает отлично!

Хорошо о тернарном операторе рассказано в этом видео-уроке.

Напоследок добавлю, что в  некоторых соглашениях о кодировании не рекомендуют использовать тернарный оператор из-за того, что снижается читабельность кода. Но знать о нём надо, так как никто не может предугадать, какие коды придется встретить и читать в будущем.  О соглашениях кодирования больше можно узнать в нашей статье Форматирование исходного кода.

13 thoughts on “Тернарный оператор ? : в C++

  1. По моему так лучше так:
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “rus”);

    // значение этой переменной будет изменять пользователь
    int variable;

    cout << "Выполнение каких-то транзакций по счету карты…\n";
    cout <> variable;

    variable == 1 ? cout << "Выберите операцию!\n……….\n\n" : cout << "До свидания! Не забудьте взять чек!\n\n";

    return 0;
    }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *