Image default
C++ Програмування

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

Тернарний оператор доволі похожий на умовний оператор if else, про йкий ми згадували раніше. Це по суті скорочена форма розгалуження, яку називають тернарною операцією і позначають символом «?».

Тернарний оператор містить три операнда. Його синтаксис наступний:

"умова" ? "значення виразу 1" : "значеня виразу 2"

Якщо умова приймає значення true (тобто вона істинна), то виконається вираз 1, якщо ж хибна falseтоді виконається вираз 2.

Наведемо приклад використання тернарного оператору. Нехай нам необхідно перевірити два числа a та b, які ми вводимо з клавіатури за наступною умовою: якщо a > b тоді потрібно зменшити число a на 1, в іншому випадку збільшити на 2.

Спочатку реалізуємо це умовним оператором if

Тепер реалізуємо цю умову через тернарний оператор

Як бачите використання тернарного оператора зменшує код, як мінімум вдвічі, що вже доволі непогано оптимізує програму.

Вираз (a > b) ? аналогічний виразу if (a > b) , тобто це – умова яка задається. Виконання умови здійснює символ «?». Якщо умова істинна, то ми записуємо значення true (a++), в іншому випадку через «:» записуємо false (a+=2).

Як ми знаємо логічні вирази можуть приймати декілька умов, тобто бути складеними. Наведемо приклад реалізації складеної умови, з використанням тернарного оператору:

Ввести значення x, та обчислити y при умовах: якщо x <= 4, тоді y = x 8, -4 < x < 0, y = 3x 2, x >= 0, y = 2 x.

Реалізуємо код через вкладені тернарні операції

cout << "y =" << (x <= 4 ? y = x - 8 : (x > -4) && (x < 0) ? y = 3 * x - 2 : y = 2 - x) << endl; 

Перша умовна операція перевіряє умову x <= 4, відповідно коли умова виконується знаходиться значення y = x – 8. Друга умовна операція перевіряє умову (x > -4) && (x < 0) , яка знаходиться всередині тернарної операції. Якщо  умова виконується тоді y приймає значення y = 3 * x – 2, в іншому випадку y = 2 - x.

Як бачимо в деяких випадках доцільно використовувати тернарні оператори, оскільки вони допомагають суттєво скоротити програмний код.

Related posts

Типи даних в С++

Just_Programmer

Структура програми С++

Admin_Black.Prince

Компіляція кирилиці в С++

Admin_Black.Prince

26 коментарів

Leave a Comment