OOP Course
Сьогодні

Підрозділ 2.8

Операції присвоєння

Пояснює просте та складене присвоєння, скорочені оператори на кшталт +=, -=, *= і порядок виконання таких виразів.

2.8. Операції присвоєння

Операція присвоєння — одна з найфундаментальніших операцій у програмуванні. Вона записує значення у змінну, задаючи або оновлюючи її стан. В операції присвоєння беруть участь два операнди: лівий (змінна, якій присвоюється значення) і правий (вираз, значення якого присвоюється). Лівий операнд завжди повинен бути іменованим виразом, що допускає модифікацію, — зазвичай це змінна або елемент масиву. Звичайний літерал або константа лівим операндом бути не може.

Операції присвоєння C#

Базове присвоєння `=`

Найпростіша операція присвоєння — =. Вона обчислює вираз праворуч і записує результат у змінну ліворуч:

Операція присвоєння має низький пріоритет: спочатку повністю обчислюється вираз правого операнда, і лише потім результат записується у змінну. Це дозволяє без будь-яких проблем писати a = b * 5 + 2 — множення і додавання виконаються першими.

Множинне присвоєння

C# дозволяє присвоювати одне і те саме значення кільком змінним в одному виразі. Для цього операції присвоєння ставляться підряд. Оскільки присвоєння є правоасоціативним, вони виконуються праворуч наліво:

Тут спочатку виконується c = 100, потім b = c (тобто b = 100), і нарешті a = b (тобто a = 100). Усі три змінні отримують значення 100. Це зручно для ініціалізації групи лічильників, прапорців або результатів одним значенням.

Те саме стосується і складніших виразів правого операнда:

Складені операції присвоєння

Дуже поширена ситуація: змінна бере участь в операції і результат записується назад у ту саму змінну. Наприклад, score = score + 10. Для таких випадків C# пропонує складені (compound) оператори присвоєння — скорочені форми, де лівий операнд неявно присутній і з правого боку.

Арифметичні складені присвоєння

Кожен арифметичний оператор має свій відповідний оператор складеного присвоєння:

Оператор Еквівалент Дія
A += B A = A + B Додавання та присвоєння
A -= B A = A - B Віднімання та присвоєння
A *= B A = A * B Множення та присвоєння
A /= B A = A / B Ділення та присвоєння
A %= B A = A % B Залишок та присвоєння

Застосуємо їх послідовно до однієї змінної, спостерігаючи за зміною її значення:

Такий стиль запису не лише коротший, але й зменшує ризик помилок: немає небезпеки написати a = b + 5 замість a = a + 5, якщо обидві змінні мають схожі імена.

Побітові складені присвоєння

Аналогічні скорочені форми є й для порозрядних операцій та операцій зсуву:

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

Правоасоціативність операцій присвоєння

На відміну від арифметичних операцій (які лівоасоціативні), всі операції присвоєння в C# є правоасоціативними: вираз, що стоїть праворуч, обчислюється першим і передає своє значення лівому. Це дозволяє будувати ланцюжки присвоєнь:

Розуміння правоасоціативності важливе при читанні таких ланцюжків: слід читати їх зсередини назовні або справа наліво, крок за кроком обчислюючи кожне підвираз.

Практичний приклад: накопичення витрат

Розроблено Tomka Yurii · © 2026 ·