У циклічних обчисленнях дуже часто використовуються присвоювання вигляду і=і+1
та і=і-1
. Їх можна задати в скороченій формі за допомогою одномісних операторів збільшення – інкременту (++) і зменшення – декременту (–). Ці оператори (і відповідні операції) мають префіксну (++і
, --і
) і постфіксну (і++
, і--
) форми.
Вираз із постфіксним оператором і++
або і--
змінює значення змінної і на 1, але значенням самого виразу є значення і перед зміною. Вираз із префіксним оператором ++i
або --i
теж змінює значення і на 1, але значенням виразу є значення і, отримане після зміни. Ці відмінності виявляються, коли оператори ++ та — застосовуються всередині виразів.
Розглянемо різницю префіксної та постфіксної форми на прикладах.
Приклад 1.
1 2 3 4 |
a=2; b=3*++a; c=5; d=4+(--c); |
Результати виконання команд будуть такими:
a=3;
b=3*3=9;
c=5;
d=4+4=8;
Тут використано операцію інкременту і декременту у префіксній формі: спочатку збільшується значення змінної а на одиницю, а потім обчислюється вираз b. Значення змінної с зменшується на 1, потім обчислюється вираз d.
Приклад 2.
1 2 3 4 |
a=2; b=3*(a++) с=5; d=4+(c--); |
Тут спочатку обчислюється значення виразу b з а=2, та виразу d з с=5, а потім збільшуються або зменшуються значення змінних.
Тобто b=3*2=6, d=4+5=9.
Круглі дужки використано для однозначного задання порядку операцій. Зверніть увагу, що значення виразу без дужок b=3*a++
буде дорівнювати b=3*2+1=7.