Комбіновані операції привласнення Початковий | Еквівалент | Коментар | оператор | | | | | | var=var+3; | var+=3; | До змінної додається 3 | | | | var=var-10; | var-=10; | Із змінної віднімається 10 | | | | var=var*3.14; | var*=3.14; | Змінна помножується на 3.14 | | | | var=var/2.5; | var/=2.5; | Змінна ділиться на 2.5 | | | | var=var&0xF; | var&=0xF; | У змінній залишаються тільки 4 молодших розряди | | | | var=var|0xF; | var|=0xF; | У змінній встановлюються 4 молодших розряди | | | | var=var<<3; | var<<=3; | Змінна зсувається ліворуч на 3 розряди | | | | var=var>>5; | var>>=5; | Змінна зсувається праворуч на 5 розрядів | | | | var=var%2; | Var%=2; | Взяття залишку при діленні var на 2 | | | | var=var+1; | var++; | Операція інкремента | | | | var=var-1; | var--; | Операція декремента | | | | Операції порівнянняпризначені для перевірки рівності абонерівності порівнюваних операндів. Усі вони повертають true у разі встановлення істинності виразу і false інакше. Нижче перераховані оператори порівняння, використовувані в мовах З і C++. Операція | Виконувана перевірка | | | == | Дорівнює | | | != | Не дорівнює | | | > | Більше | | | < | Менше | | | <= | Менше або дорівнює | | | >= | Більше або дорівнює | | | Логічні операції І (&&), АБО (||) і НЕ (!) повертають значення true або false залежно від логічного відношення між їх операндами. Так, операція && повертає true, коли істинні (не дорівнюють нулю) обидва його аргументи. Оператор || повертає false тільки в тому випадку, якщо обидва його аргументи помилкові (дорівнюють нулю). Оператор ! інвертує значення свого операнда з false на frue і навпаки. Приклад використання логічних операцій і операцій порівняння наведений нижче: #include <iostream> #include <conio.h> using namespace std; void main() { float fa=2,fb=4; cout<<"fa<fb " <<(fa<fb) <<"\n"; cout<<"fa>fb " <<(fa>fb) <<"\n"; cout<<"fa<=fb " <<(fa<=fb) <<"\n"; cout<<"fa>=fb " <<(fa>=fb) <<"\n"; cout<<"fa==fb " <<(fa==fb) <<"\n"; cout<<"fa!=fb " <<(fa!=fb) <<"\n"; cout<<"fa&&fb " <<(fa&&fb) <<"\n"; cout<<"fa||fb " <<(fa||fb) <<"\n"; getch(); } Результат роботи програми наведений на рис. 12  Рис. 12. Результат роботи програми Умовна операція має такий формат: Умовний вираз ? вираз 1 : вираз 2; Якщо умовний вираз true, то виконується вираз 1. Якщо умова false,то виконується вираз2.Наприклад: var>7 ? х=11:у=7; Часто вирази 1 і 2 використовують одну і ту ж змінну, якою привласнюється або одне, або інше значення. Тоді умовна операція записується трохи інакше: Змінна = Умовний вираз ? вираз 1 : вираз 2; Наприклад: char cS=(x<=max) ? 'Y ' :'N'; Якщо x<=max, то змінна cS набуває значення 'Y', якщо x>max, то cS буде рівна 'N'. Операція кома (,) дозволяє послідовно виконати два вирази, записані в одному рядку. Результатом є значення виразу, розташованого праворуч від коми. Синтаксис оператора такий: лівий_вираз, правий_вираз Найчастіше цей оператор застосовується в циклі for, коли в умову циклу потрібно включити перевірку значень декількох змінних. Наприклад: for(min=0,max=len-1;min<max;min++,max--) { . } Операція sizeof служить для визначення розміру операнда в байтах. Вона може використовуватися як з позначенням змінної, так і з її типом (у останньому випадку операнд слід укласти в круглі дужки). Операція sizeof особливо корисна для визначення розмірів агрегатних змінних – масивів і структур. Наприклад: char cS[]="Операция sizeof"; int cSLen=sizeof cS; Масив cS займатиме 16 байтів пам'яті. Послідовність виконання різних операцій визначається компілятором. Якщо не враховувати порядок розбору виразу компілятором, можуть бути отримані неправильні результати. У табл. 3 перераховані всі операції мови C++ в порядку зниження їх пріоритету і вказаний напрям обчислення операндів (асоціативність): зліва направо або справа наліво. Таблиця 3 |