Тернарний оператор
В програмуванні дуже важливо вміти спрощувати код програми. Це потрібно по декільком причинам таких як:
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;
}
Зверніть увагу, що код ще зменшився в своїх Тому, якщо ви хочете використати з простою внутрішньою частиною (яка складається з одного рядка), то можна його замінити на тернарний оператор.