Тернарний оператор

В програмуванні дуже важливо вміти спрощувати код програми. Це потрібно по декільком причинам таких як:

1) Використання менших ресурсів пристрою для запуску програми.

2) Зменшення «ваги» програми (чим менше коду тим менше простору потрібно для програми).

3) Легша читабельність коду.


Ми вже вивчили з вами оператор Тому, давайте розглянемо наступний код:

    
            #include <iostream>

            int main()
            {
                int a;

                std::cout << "Input number: ";
                std::cin >> a;

                if (a <= 7)
                {
                    std::cout << "a <= 7";
                }
                else
                {
                    std::cout << "a > 7";
                }

                return 0;
            }
        
    

Як бачите, ми маємо програму, яка виведе перший чи другий текст в залежності від значення Оскільки в наших та в середині є лише по одному рядку, то ми можемо забрати фігурні дужки і таким чином трішки спростити програму. Після чого вона матиме наступний вигляд:

    
            #include <iostream>

            int main()
            {
                int a;

                std::cout << "Input number: ";
                std::cin >> a;

                if (a <= 7)
                    std::cout << "a <= 7";
                else
                    std::cout << "a > 7";
            
                return 0;
            }
        
    

В обох випадках ми маємо таку логіку програми:

Якщо умова правильна, то виконуємо першу дію в іншому випадку (якщо умова не правильна), то виконуємо другу дію.


При цьому даний код можна спростити за допомогою


Тернарний оператор має по факту таку ж саму логіку як і тобто він перевіряє умову, якщо вона вірна, то виконується перша дія, якщо ні, то друга дія.

Запис тернарного оператора виглядає так:

1) Записуємо умову.

2) Ставимо символ « ? ».

3) Записуємо дію, яка має виконатися, якщо умова виконується.

4) Ставимо символ « : ».

5) Записуємо дію, яка має виконатися, якщо умова не виконується.


Тобто:

(Умова) ? (дія, якщо умова виконалася) : (дія, якщо умова не виконалася)


При потребі ви кожну частину можете записувати у фігурних дужках.


Отже, спробуємо записати попередній код за допомогою тернарного оператора.

        
            #include <iostream>

            int main()
            {
                int a;

                std::cout << "Input number: ";
                std::cin >> a;

                //варіант перший
                a <= 7 ? std::cout << "a <= 7\n" : std::cout << "a > 7\n";

                //за допомогою дужок виділимо кожну умову
                //(a <= 7) ? (std::cout << "a <= 7\n") : (std::cout << "a > 7\n");

                //варіант другий
                std::cout << (a <= 7 ? "a <= 7\n" : "a > 7\n");

                return 0;
            }
        
    

Зверніть увагу, що код ще зменшився в своїх Тому, якщо ви хочете використати з простою внутрішньою частиною (яка складається з одного рядка), то можна його замінити на тернарний оператор.