Що таке оператори?
Оператор - це символ, що використовується для виконання операцій над операндами. Оператор оперує операндами. Операції можуть бути математичними або логічними. У C ++ існують різні типи операторів для виконання різних операцій.
Розглянемо наступну операцію:
a = x + y;
У наведеному вище твердженні x та y - операнди, тоді як + - оператор додавання. Коли компілятор С ++ зустрінеться з наведеним вище твердженням, він додасть x і y і збереже результат у змінній a.
У цьому підручнику з C ++ ви дізнаєтесь:
- Що таке оператори?
- Арифметичні оператори
- Реляційні оператори
- Логічні оператори
- Побітові оператори
- Оператори присвоєння
- Інший оператор
- sizeof оператора
- Кома оператор
- Умовний оператор
- Перевага операторів
Арифметичні оператори
Це типи операторів, що використовуються для виконання математичних / арифметичних операцій. Вони включають:
Оператор | Опис |
+ оператор додавання | Додає до операндів. |
- оператор віднімання | Віднімає 2- й операнд від 1- го операнда. |
* оператор множення | Множить 2 операнди. |
/ оператор поділу. | Ділить чисельник на знаменник. |
Оператор% модуля | Повертає залишок після поділу. |
++ оператор збільшення | Збільшує ціле значення на 1. |
- оператор зменшення. | Зменшує ціле значення на 1. |
Наприклад:
#includeusing namespace std;int main() {int a = 11;int b = 5;int c;cout << "a + b is : << a+b << endl; //11+5cout << "a - b is : << a-b << endl; //11-5cout << "a * b is : << a*b << endl; //11*5cout << "a / b is : << a/b << endl; //11/5cout << "a % b is : << a%b << endl; //11%5cout << "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 () повинна повертати значення, якщо програма працює нормально.
- Кінець тіла основної () функції.
Реляційні оператори
Ці типи операторів виконують порівняння операндів. Наприклад, вам може знадобитися знати, який операнд більший за інший, або менший за інший. Вони включають:
Опис
Оператор | Опис |
== дорівнює оператору. | Перевіряє рівність двох значень операндів. |
! = не дорівнює оператору | Перевіряє рівність двох значень операндів. |
> чудовий, ніж оператор | Перевіряє, чи значення лівого операнда більше значення правого операнда. |
<менше оператора. | Перевіряє, чи значення лівого операнда менше значення правого операнда. |
> = більше або дорівнює оператору | Перевіряє, чи значення лівого операнда більше або дорівнює значенню правого операнда. |
<= менше або дорівнює оператору. | Перевіряє, чи значення лівого операнда менше або дорівнює значенню правого операнда. |
Наприклад:
#includeusing 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.
- Текст для друку на консолі, якщо операція a == b відповідає дійсності. Endl - це ключове слово C ++ для кінцевого рядка. Він натискає курсор, щоб розпочати друк у наступному рядку. Значок} позначає кінець тексту оператора if.
- Інша частина наведеного вище твердження if. У ньому вказано, що робити, якщо операція a == b хибна.
- Текст для друку на консолі, якщо операція a == b хибна. Endl - це ключове слово C ++ для кінцевого рядка. Він натискає курсор, щоб розпочати друк у наступному рядку. Значок} означає кінець основного тексту оператора else.
- Виконуючи арифметичну операцію, a
- Текст для друку на консолі, якщо операція a
- Інша частина наведеного вище твердження if. У ньому зазначено, що робити, якщо операція a
- Текст для друку на консолі, якщо операція a
- Виконання арифметичної операції a> b в операторі, якщо приймається рішення, щоб дізнатись, чи це правда чи неправда. Значок {позначає початок тіла оператора if.
- Текст для друку на консолі, якщо операція a> b відповідає дійсності. Endl - це ключове слово C ++ для кінцевого рядка. Він натискає курсор, щоб розпочати друк у наступному рядку. Значок} позначає кінець тексту оператора if.
- Інша частина наведеного вище твердження if. У ньому вказано, що робити, якщо операція a> b хибна.
- Текст для друку на консолі, якщо операція a> b хибна. Endl - це ключове слово C ++ для кінцевого рядка. Він натискає курсор, щоб розпочати друк у наступному рядку. Значок} означає кінець основного тексту оператора else.
- Функція main () повинна повертати значення, якщо програма працює нормально.
- Кінець тіла основної () функції.
- Текст для друку на консолі, якщо операція a
Логічні оператори
Логічні оператори поєднують два / більше обмежень / умов. Логічні оператори також доповнюють оцінку вихідного стану, що розглядається. Вони включають:
Оператор | Опис |
&& логічний оператор І. | Умова є істинною, якщо обидва операнди не дорівнюють нулю. |
|| логічний оператор АБО. | Умова є істинною, якщо один з операндів не дорівнює нулю. |
! логічний оператор НЕ. | Він змінює логічний стан операнда. Якщо операнд відповідає дійсності, то! оператор робить це помилковим. |
Наприклад:
#includeusing 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";elsecout << "AND operation returned false\n";if (a == b || c> d)cout << "a equals to b OR c is greater than d\n";elsecout << "Neither a is equal to b nor c is greater than d\n";if (!b)cout << "b is zero\n";elsecout << "b is not zero";return 0;}
Вихід:
Ось скріншот коду:
Пояснення коду:
- Включення файлу заголовка iostream до нашого коду. Це дозволить нам читати та писати на консолі.
- Включаючи std простір імен, щоб використовувати його класи та функції, не викликаючи його.
- Виклик функції main (), всередині якої слід додати логіку програми.
- {Позначає початок основного елемента функції main ().
- Оголошення 4 цілочисельних змінних a, b, c і d та присвоєння їм різних значень.
- Використання оператора && (AND) всередині оператора if. Він об'єднує дві умови: значення дорівнює значенню b і, значення a більше за значення b. Перша умова хибна, друга умова істинна. False && true є False, отже, результат if є false.
- Текст для друку на консолі, якщо викладене вище, якщо твердження відповідає дійсності. Це не буде виконано.
- Частина, що виконується, якщо вищезазначене твердження if хибне.
- Текст для друку на консолі, якщо оператор if хибний. Це буде виконано.
- Використання || (АБО) в операторі if. Він об'єднує дві умови: значення дорівнює значенню b і, значення a більше за значення b. Перша умова хибна, друга умова істинна. False || true - це True, отже, результат if є true.
- Текст для друку на консолі, якщо наведене вище твердження if відповідає дійсності. Це буде виконано.
- Частина, що виконується, якщо вищезазначене твердження if хибне.
- Текст для друку на консолі, якщо оператор if хибний. Це не буде виконано.
- Перевірка, чи значення змінної дорівнює 0.
- Текст для друку на консолі, якщо наведене вище твердження if відповідає дійсності. Це не буде виконано.
- Частина, що виконується, якщо вищезазначене твердження if хибне.
- Текст для друку на консолі, якщо оператор if хибний. Це буде виконано.
- Функція main () повинна повертати значення, якщо програма працює нормально.
- Кінець тіла основної () функції.
Побітові оператори
Побітові оператори виконують операції бітового рівня над операндами. Спочатку оператори перетворюються на бітовий рівень, потім операції виконуються над операндами. Коли арифметичні операції, такі як додавання і віднімання, виконуються на рівні бітів, результатів можна досягти швидше. Вони включають:
Оператор | Опис |
& (побітове І). | Потрібно 2 числа (операнди), після чого виконується І на кожному біті двох чисел. Якщо обидва значення 1, І повертає 1, інакше 0. |
| (побітове АБО) | Бере 2 числа (операнди), а потім виконує АБО на кожному біті двох чисел. Він повертає 1, якщо один із бітів дорівнює 1. |
(побітове XOR) | Бере 2 числа (операнди), а потім виконує XOR для кожного біта 2 чисел. Повертає 1, якщо обидва біти різні. |
<< (зсув вліво) | Бере два числа, потім ліворуч зміщує біти першого операнда. Другий операнд визначає загальну кількість місць для переміщення. |
>> (зрушення вправо) | Бере два числа, потім вправо зміщує біти першого операнда. Другий операнд визначає кількість місць для переміщення. |
~ (побітове НЕ). | Потім приймає число, інвертує всі його біти. |
#includeusing namespace std;int main() {unsigned int p = 60; // 60 = 0011 1100unsigned int q = 13; // 13 = 0000 1101int z = 0;z = p & q;cout << "p&q is : " << z << endl; // 12 = 0000 1100z = p | q;cout << "p|q is : " << z << endl; // 61 = 0011 1101z = p q;cout << "p^q is : " << z << endl; // 49 = 0011 0001z = ~p;cout << "~p is : " << z << endl; // -61 = 1100 0011z = p << 2;cout << "p<<2 is: " << z << endl; // 240 = 1111 0000z = p>> 2;cout << "p>>2 is : " << z << endl; // 15 = 0000 1111return 0;}
Вихід:
Ось скріншот коду:
Пояснення коду:
- Включення файлу заголовка iostream до нашого коду. Це дозволить нам читати та писати на консолі.
- Включаючи std простір імен, щоб використовувати його класи та функції, не викликаючи його.
- Виклик функції main (), всередині якої слід додати логіку програми. {Позначає початок основного елемента функції main ().
- Оголошення цілочисельних змінних без знака p та присвоєння йому значення 60, тобто 0011 1100 у двійковій формі.
- Оголошення беззнакової цілочисельної змінної q та присвоєння їй значення 13, тобто 0000 1101 у двійковій формі.
- Оголошення цілочисельної змінної z та ініціалізація її до 0.
- Виконання побітової операції & (AND) над змінними p і q та збереження результату у змінній z.
- Друк результату вищезазначеної операції на консолі поряд з іншим текстом.
- Виконання побітового | (АБО) операція зі змінними p і q та збереження результату у змінній z.
- Друк результату вищезазначеної операції на консолі поряд з іншим текстом.
- Виконання побітової операції (XOR) над змінними p і q та збереження результату у змінній z.
- Друк результату вищезазначеної операції на консолі поряд з іншим текстом.
- Виконання побітової операції ~ (NOT) над змінними p і q та збереження результату у змінній z.
- Друк результату вищезазначеної операції на консолі поряд з іншим текстом.
- Виконання операції зсуву ліворуч над змінною p та збереження результату у змінній z.
- Друк результату вищезазначеної операції на консолі поряд з іншим текстом.
- Виконання операції правильного зсуву для змінної p та збереження результату у змінній z.
- Друк результату вищезазначеної операції на консолі поряд з іншим текстом.
- Функція main () повинна повертати значення, якщо програма працює нормально.
- Кінець тіла основної () функції.
Оператори присвоєння
Оператори присвоєння присвоюють значення змінним. Операнд / змінна додається в ліву частину оператора, тоді як значення додається в праву частину оператора. Змінна та значення повинні належати одному типу даних, інакше компілятор С ++ спричинить помилку. Наприклад:
x = 5;
У наведеному вище прикладі x - змінна / операнд, = - оператор присвоєння, тоді як 5 - значення. Ось популярні оператори присвоєння в C ++:
Оператор | Опис |
= (простий оператор присвоєння) | Він присвоює значення праворуч змінній зліва. |
+ = (Додати І оператор присвоєння) | Спочатку він додає значення лівого операнда до значення правого операнда, потім присвоює результат змінній зліва. |
- = (Оператор віднімання І присвоєння) | Спочатку він віднімає значення правого операнда від значення лівого операнда, потім присвоює результат змінній зліва. |
* = (Множник І оператор присвоєння) | Спочатку він множить значення лівого операнда зі значенням правого операнда, потім присвоює результат змінній зліва. |
/ = (Оператор розподілу І присвоєння) | Спочатку він ділить значення лівого операнда на значення правого операнда, потім присвоює результат змінній зліва. |
Наприклад:
#includeusing 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 () повинна повертати значення, якщо програма працює нормально.
- Кінець тіла основної () функції.
Інший оператор
Давайте обговоримо інші оператори, що підтримуються C ++:
sizeof оператора
Цей оператор визначає розмір змінної. Використовуйте оператор sizeof для визначення розміру типу даних. Наприклад:
#includeusing 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 та друк його поряд з іншим текстом на консолі.
- Визначення розміру типу плаваючих даних за допомогою оператора sizeof та друк його разом з іншим текстом на консолі.
- Визначення розміру типу плаваючих даних за допомогою оператора sizeof та друк його разом з іншим текстом на консолі.
- Функція main () повинна повертати значення, якщо програма працює нормально.
- Кінець тіла основної () функції.
Кома оператор
Кома-оператор (,) ініціює виконання послідовності операцій. Він виражає перший операнд і відкидає результат. Далі він обчислює другий операнд і повертає значення та тип.
#includeusing 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 () повинна повертати значення, якщо програма працює нормально.
- Кінець тіла основної () функції.
Умовний оператор
Цей оператор оцінює стан і діє на основі результатів оцінки.
Синтаксис:
Condition ? Expression2 : Expression3;
Параметри:
- Умова - це умова, яку слід оцінити.
- Вираз1 - це вираз, який слід виконати, якщо умова відповідає істині.
- Вираз3 - це вираз, який слід виконати, якщо умова хибна.
Наприклад:
#includeusing 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 () повинна повертати значення, якщо програма працює нормально.
- Кінець тіла основної () функції.
Перевага операторів
В одній операції може бути більше одного оператора. У цьому випадку пріоритет оператора визначає той, який оцінюється першим.
Наступний список показує перевагу операторів у C ++ із зменшенням пріоритету зліва направо:
(), [], *, /,%, +/-, <<, >>, ==,! =, ^, |, &&, ||,?:, =, + =, - =, 8 = , / =
Короткий зміст:
- Оператори - це символи для виконання логічних та арифметичних операцій.
- Арифметичні оператори допомагають нам виконувати різні арифметичні операції над операндами.
- Реляційні оператори допомагають нам виконувати різні операції порівняння операндів.
- Логічні оператори допомагають нам виконувати різні логічні операції над операндами.
- Побітові оператори допомагають нам виконувати побітові операції над операндами.
- Оператори присвоєння допомагають нам виконувати різні арифметичні операції над операндами.
- Оператор sizeof повертає розмір змінної або типу даних.
- Оператор-кома виконує послідовність операцій.
- Умовний оператор оцінює стан і діє на основі результату.