Operaтори в C++ з прикладом: що таке, типи та програми
Які Operaторс?
Оператор це символ, який використовується для виконання операцій над операндами. Оператор оперує операндами. Операції можуть бути математичними або логічними. Існують різні типи операторів C++ для виконання різних операцій.
Розглянемо наступну операцію:
a = x + y;
У наведеному вище операторі x і y є операндами, тоді як + є оператором додавання. Коли C++ компілятор зустрічає наведений вище оператор, він додасть x і y і збереже результат у змінній a.
Типи Operaтори в C++
Є в основному 6 різних типів операторів C++
- Арифметика Operaторс
- Реляційний Operaторс
- логічний Operaторс
- Побітовий Operaторс
- Призначення Operaторс
- Корисне Operaторс
Арифметика Operaторс
Це типи операторів, які використовуються для виконання математичних/арифметичних операцій. Вони включають:
Operaтор | Опис |
---|---|
+ оператор додавання | Додає до операндів. |
– оператор віднімання | Віднімає 2nd операнд від 1st операнд. |
* оператор множення | Перемножує 2 операнди. |
/ оператор ділення. | Ділить чисельник на знаменник. |
% оператор модуля | Повертає остачу після ділення. |
++ оператор приросту | Збільшує ціле значення на 1. |
— оператор декременту. | Зменшує ціле значення на 1. |
Наприклад:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; int c; cout << "a + b is :" << a+b << endl; //11+5 cout << "a - b is :" << a-b << endl; //11-5 cout << "a * b is :" << a*b << endl; //11*5 cout << "a / b is :" << a/b << endl; //11/5 cout << "a % b is :" << a%b << endl; //11%5 cout << "a++ is :" << a++ << endl; //11++ cout << "a-- is :" << a-- << endl; //12-- return 0; }
вихід:
Ось скріншот коду:
Пояснення коду:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми. { позначає початок тіла функції main().
- Оголошення цілочисельної змінної a та ініціалізація її 11.
- Оголошення цілочисельної змінної b та ініціалізація її 5.
- Оголошення цілочисельної змінної c.
- Друк значення операції a+b поряд з іншим текстом на консолі.
- Друк значення операції ab поряд з іншим текстом на консолі.
- Друк значення операції a*b поряд з іншим текстом на консолі.
- Друк значення операції a/b поряд з іншим текстом на консолі.
- Друк значення операції a%b поряд з іншим текстом на консолі.
- Друк значення операції a++ поряд з іншим текстом на консолі.
- Друк значення операції a– поряд з іншим текстом на консолі.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Реляційний Operaторс
Ці типи операторів виконують порівняння операндів. Наприклад, вам може знадобитися знати, який операнд більший за інший або менший за інший. Вони включають:
Operaтор | Опис |
---|---|
== дорівнює оператору. | Перевіряє рівність двох значень операнда. |
!= не дорівнює оператору | Перевіряє рівність двох значень операнда. |
> краще, ніж оператор | Перевіряє, чи значення лівого операнда більше за значення правого операнда. |
< оператор менше. | Перевіряє, чи значення лівого операнда менше за значення правого операнда. |
>= більше або дорівнює оператору | Перевіряє, чи значення лівого операнда більше або дорівнює значенню правого операнда. |
<= менше або дорівнює оператору. | Перевіряє, чи значення лівого операнда менше або дорівнює значенню правого операнда. |
Наприклад:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; cout << "a=11, b=5" << endl; if (a == b) { cout << "a == b is true" << endl; } else { cout << " a == b is false" << endl; } if (a < b) { cout << "a < b is true" << endl; } else { cout << "a < b is false" << endl; } if (a > b) { cout << "a > b is true" << endl; } else { cout << "a > b is false" << endl; } return 0; }
вихід:
Ось скріншот коду:
Пояснення коду:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми. { позначає початок тіла функції main().
- Оголошення цілочисельної змінної a та ініціалізація її 11.
- Оголошення цілочисельної змінної b та ініціалізація її 5.
- Друк деякого тексту на консолі із зазначенням значень змінних a і b.
- Виконання арифметичної операції a==b у операторі прийняття рішення if, щоб дізнатися, правда чи хибність. { позначає початок тіла оператора if.
- Текст для друку на консолі, якщо операція a==b є істинною. Endl - це a C++ ключове слово для кінцевого рядка. Він штовхає курсор, щоб розпочати друк у наступному рядку. } позначає кінець тіла оператора if.
- Інша частина наведеного вище оператора if. У ньому зазначено, що робити, якщо операція a==b помилкова.
- Текст для друку на консолі, якщо операція a==b є false. Endl - це a C++ ключове слово для кінцевого рядка. Він штовхає курсор, щоб розпочати друк у наступному рядку. } позначає кінець тіла оператора else.
- Виконання арифметичної дії, a
- Текст для друку на консолі, якщо операція a C++ ключове слово для кінцевого рядка. Він штовхає курсор, щоб розпочати друк у наступному рядку. } позначає кінець тіла оператора if.
- Інша частина наведеного вище оператора if. У ньому зазначено, що робити, якщо операція a
- Текст для друку на консолі, якщо операція a C++ ключове слово для кінцевого рядка. Він штовхає курсор, щоб розпочати друк у наступному рядку. } позначає кінець тіла оператора else.
- Виконання арифметичної операції a>b у операторі прийняття рішення if, щоб дізнатися, правда чи хибність. { позначає початок тіла оператора if.
- Текст для друку на консолі, якщо операція a>b істинна. Endl - це a C++ ключове слово для кінцевого рядка. Він штовхає курсор, щоб розпочати друк у наступному рядку. } позначає кінець тіла оператора if.
- Інша частина наведеного вище оператора if. У ньому зазначено, що робити, якщо операція a>b помилкова.
- Текст для друку на консолі, якщо операція a>b є помилковою. Endl - це a C++ ключове слово для кінцевого рядка. Він штовхає курсор, щоб розпочати друк у наступному рядку. } позначає кінець тіла оператора else.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
логічний Operaторс
Команда логічні оператори поєднати два/більше обмежень/умов. Логічні оператори також доповнюють оцінку початкового стану, що розглядається. Вони включають:
Operaтор | Опис |
---|---|
&& логічний оператор І. | Умова виконується, якщо обидва операнди не дорівнюють нулю. |
|| логічний оператор АБО. | Умова виконується, якщо один із операндів відмінний від нуля. |
! логічний оператор НЕ. | Він змінює логічний стан операнда. Якщо операнд істинний, ! оператор робить його false. |
Наприклад:
#include <iostream> using namespace std; int main() { int a = 5, b = 2, c = 6, d = 4; if (a == b && c > d) cout << "a equals to b AND c is greater than d\n"; else cout << "AND operation returned false\n"; if (a == b || c > d) cout << "a equals to b OR c is greater than d\n"; else cout << "Neither a is equal to b nor c is greater than d\n"; if (!b) cout << "b is zero\n"; else cout << "b is not zero"; return 0; }
вихід:
Ось скріншот коду:
Пояснення коду:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- { позначає початок тіла функції main().
- Оголошення 4 цілих змінних a, b, c і d і присвоєння їм різних значень.
- Використання оператора && (І) всередині оператора if. Він поєднує дві умови: значення a дорівнює значенню b і значення a більше за значення b. Перша умова хибна, друга умова істинна. False&&true є False, отже, результат if є false.
- Текст для друку на консолі, якщо наведене вище твердження є істинним. Це не буде виконано.
- Частина, яка буде виконана, якщо наведений вище оператор if невірний.
- Текст для друку на консолі, якщо оператор if невірний. Це буде виконано.
- Використовуючи || (OR) оператор у операторі if. Він поєднує дві умови: значення a дорівнює значенню b і значення a більше за значення b. Перша умова хибна, друга умова істинна. False||true є True, отже, результат if є true.
- Текст для друку на консолі, якщо наведене вище твердження є істинним. Це буде виконано.
- Частина, яка буде виконана, якщо наведений вище оператор if невірний.
- Текст для друку на консолі, якщо оператор if невірний. Це не буде виконано.
- Перевірка, чи значення змінної дорівнює 0.
- Текст для друку на консолі, якщо наведене вище твердження є істинним. Це не буде виконано.
- Частина, яка буде виконана, якщо наведений вище оператор if невірний.
- Текст для друку на консолі, якщо оператор if невірний. Це буде виконано.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Побітовий Operaторс
Побітові оператори виконувати операції на бітовому рівні над операндами. Спочатку оператори перетворюються на бітовий рівень, а потім над операндами виконуються операції. Коли такі арифметичні операції, як додавання та віднімання, виконуються на рівні бітів, результатів можна досягти швидше. Вони включають:
Operaтор | Опис |
---|---|
& (побітове І). | Він приймає 2 числа (операнди), а потім виконує І для кожного біта двох чисел. Якщо обидва дорівнюють 1, І повертає 1, інакше 0. |
| (порозрядне АБО) | Бере 2 числа (операнди), потім виконує АБО для кожного біта двох чисел. Він повертає 1, якщо один із бітів дорівнює 1. |
^ (побітове XOR) | Бере 2 числа (операнди), а потім виконує XOR для кожного біта 2 чисел. Він повертає 1, якщо обидва біти різні. |
<< (зрушення вліво) | Бере два числа, а потім зсуває біти першого операнда вліво. Другий операнд визначає загальну кількість місць для зсуву. |
>> (праворуч) | Бере два числа, а потім зсуває біти першого операнда вправо. Другий операнд визначає кількість місць для зсуву. |
~ (побітове НІ). | Бере число, а потім інвертує всі його біти. |
#include <iostream> using namespace std; int main() { unsigned int p = 60; // 60 = 0011 1100 unsigned int q = 13; // 13 = 0000 1101 int z = 0; z = p & q; cout << "p&q is : " << z << endl; // 12 = 0000 1100 z = p | q; cout << "p|q is : " << z << endl; // 61 = 0011 1101 z = p ^ q; cout << "p^q is : " << z << endl; // 49 = 0011 0001 z = ~p; cout << "~p is : " << z << endl; // -61 = 1100 0011 z = p << 2; cout << "p<<2 is: " << z << endl; // 240 = 1111 0000 z = p >> 2; cout << "p>>2 is : " << z << endl; // 15 = 0000 1111 return 0; }
вихід:
Ось скріншот коду:
Пояснення коду:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми. { позначає початок тіла функції main().
- Оголошення беззнакової цілочисельної змінної p і присвоєння їй значення 60, що є 0011 1100 у двійковій системі.
- Оголошення беззнакової цілочисельної змінної q та присвоєння їй значення 13, що є 0000 1101 у двійковому форматі.
- Оголошення цілочисельної змінної z та ініціалізація її значенням 0.
- Виконання побітової операції & (І) над змінними p і q і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання порозрядного | (АБО) операція над змінними p і q і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання побітової операції ^ (XOR) над змінними p і q і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання порозрядної операції ~ (НІ) над змінними p і q і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання операції зсуву вліво для змінної p і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання операції зсуву вправо над змінною p і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Призначення Operaторс
Оператори присвоєння присвоювати значення змінним. Операнд/змінна додається до лівої сторони оператора, тоді як значення додається до правої сторони оператора. Змінна та значення мають належати до одного типу даних, інакше, the C++ компілятор викличе помилку.
Наприклад:
x = 5;
У наведеному вище прикладі x — це змінна/операнд, = — оператор присвоювання, а 5 — значення. Ось популярні оператори присвоєння в C++:
Operaтор | Опис |
---|---|
= (простий оператор присвоювання) | Присвоює значення праворуч змінній ліворуч. |
+= (оператор присвоєння "І") | Додає значення правого операнда до лівого операнда, а потім присвоює результат змінній ліворуч. |
-= (оператор присвоєння віднімання І) | Віднімає значення правого операнда з лівого, а потім присвоює результат змінній ліворуч. |
*= (оператор присвоєння множення І) | Множить значення лівого операнда на правий, а потім присвоює результат змінній ліворуч. |
/= (оператор ділення ТА присвоювання) | Ділить значення лівого операнда на правий, а потім присвоює результат змінній ліворуч. |
Наприклад:
#include <iostream> using namespace std; int main() { int x = 5; cout << "Initial value of x is " << x << "\n"; x += 5; cout << "x += 5 gives :" << x << "\n"; x -= 5; cout << "x -= 5 gives : " << x << "\n"; x *= 5; cout << "x *= 5 gives :" << x << "\n"; x /= 5; cout << "x /= 5 gives : " << x << "\n"; return 0; }
вихід:
Ось скріншот коду:
Пояснення коду:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- { позначає початок тіла функції main().
- Оголошення цілочисельної змінної x і присвоєння їй значення 5.
- Друк значення змінної x поряд з іншим текстом на консолі. \n — символ нового рядка. Він переміщує курсор на наступний рядок під час друку.
- Додавання 5 до значення змінної x і присвоєння результату змінній x.
- Друк значення змінної x на консолі поряд з іншим текстом.
- Віднімання 5 від значення x і присвоєння результату змінній x.
- Друк значення змінної x на консолі поряд з іншим текстом.
- Множення значення змінної x на 5 і присвоєння результату змінній x.
- Друк значення змінної x на консолі поряд з іншим текстом.
- Ділення значення змінної x на 5 і присвоєння результату змінній x.
- Друк значення змінної x на консолі поряд з іншим текстом.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Корисне Operaторс
Корисне Operaторс включати оператор sizeof, кома Operaтор, умовний Operaтор, і Operators Пріоритет.
Давайте обговоримо інших операторів, які підтримуються C++:
оператор sizeof
Цей оператор визначає розмір змінної. Використовуйте оператор sizeof, щоб визначити розмір типу даних.
Наприклад:
#include <iostream> using namespace std; int main() { cout<<"Size of int : "<< sizeof(int) << "\n"; cout<<"Size of char : " << sizeof(char) << "\n"; cout<<"Size of float : " << sizeof(float) << "\n"; cout<<"Size of double : " << sizeof(double) << "\n"; return 0; }
вихід:
Ось скріншот коду:
Пояснення коду:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми. { позначає початок тіла функції main().
- Визначення розміру цілочисельного типу даних за допомогою оператора sizeof і друк його разом з іншим текстом на консолі.
- Визначення розміру символьного типу даних за допомогою оператора sizeof і друк його разом з іншим текстом на консолі.
- Визначення розміру типу даних float за допомогою оператора sizeof і друк його разом з іншим текстом на консолі.
- Визначення розміру типу даних float за допомогою оператора sizeof і друк його разом з іншим текстом на консолі.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Кома Operaтор
Команда оператор кома (,) запускає виконання послідовності операцій. Він виражає перший операнд і відкидає результат. Далі він обчислює другий операнд і повертає значення та тип.
#include <iostream> using namespace std; int main() { int x, y; y = 100; x = (y++, y + 10, 99 + y); cout << x; return 0; }
вихід:
Ось скріншот коду:
Пояснення коду:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми. { позначає початок тіла функції main().
- Оголошення двох цілих змінних x і y.
- Присвоєння змінній ya значення 100.
- Збільшення значення y і присвоєння результату змінній x. Він починається з y у 100, потім збільшується до 101 (y++). Далі y додається до 10. Нарешті y, яке все ще має значення 101, додається до 99, отримуючи 200. x тепер дорівнює 200.
- Друк значення змінної x на консолі.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
умовний Operaтор
Цей оператор оцінює умову та діє на основі результату оцінювання.
Синтаксис:
Condition ? Expression2 : Expression3;
Параметри:
- Умова – це умова, яку потрібно оцінити.
- Вираз1 — це вираз, який буде виконано, якщо умова виконується.
- Вираз3 — це вираз, який буде виконано, якщо умова хибна.
Наприклад:
#include <iostream> using namespace std; int main() { int a = 1, b; b = (a < 10) ? 2 : 5; cout << "value of b: " << b << endl; return 0; }
вихід:
Ось скріншот коду:
Пояснення коду:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми. { позначає початок тіла функції main().
- Оголошення двох цілі змінні a і b. Змінній a присвоєно значення 1.
- Присвоєння значення змінній b. Якщо змінна a менше 10, b буде присвоєно значення 2, інакше b буде присвоєно значення 5.
- Друк значення змінної b на консолі поряд з іншим текстом.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Operators Пріоритет
Одна операція може мати більше одного оператора. У цьому випадку пріоритет оператора визначає той, який оцінюється першим.
У наведеному нижче списку показано пріоритет операторів in C++, зі зменшенням пріоритету зліва направо:
(), [],*, /, %, +/-, << , >>, == , !=, ^, |, &&, ||, ?:, =, +=, -=, *= , /=
Підсумки
- Operaтори — символи для виконання логічних і арифметичних операцій.
- Арифметичні оператори допомагають нам виконувати різні арифметичні операції над операндами.
- Оператори відношення допомагають нам виконувати різні операції порівняння операндів.
- Логічні оператори допомагають нам виконувати різні логічні операції над операндами.
- Побітові оператори допомагають нам виконувати побітові операції над операндами.
- Оператори присвоєння допомагають нам виконувати різні арифметичні операції над операндами.
- Оператор sizeof повертає розмір змінної або типу даних.
- Оператор коми виконує послідовність операцій.
- Умовний оператор оцінює умову та діє на основі результату.