JavaRush /Java блог /Random UA /Що таке інкрементування та декрементування
L2CCCP
9 рівень

Що таке інкрементування та декрементування

Стаття з групи Random UA
Багато новачків не знають, що таке інкремент і декремент, але впевнені, що всі бачабо використання " i++, ++i, i--або --i" в циклі for. Отже, небагато пояснень. Що таке інкрементування та декрементування - 1

Що таке інкремент?

Інкремент — це операція у багатьох мовах програмування, яка збільшує змінну. Найчастіше під інкрементом мається на увазі збільшення змінної на 1 одиницю. Оберненою операцією називають декремент. Декремент – це зменшення змінної. Найчастіше також на одиницю. Java інкремент і декремент — це в першу чергу унарні оператори, які застосовуються до будь-якої числової змінної. Інкремент: позначається двома знаками плюс " ++" і збільшує значення змінної на 1. Декремент: позначається двома знаками мінус " --" і зменшує значення змінної на 1. Приклад:
int x = 10, z = 10;
x++;
z--;

System.out.println("x: " + x + ", z: " + z);
В результаті xбуде інкрементована, а zдекрементована. І в консолі ми побачимо: x: 11, z: 9 За фактом можна писати і так:
int x = 10, z = 10;
x = x + 1;
z = z - 1;

System.out.println("x: " + x + ", z: " + z);
Але навіщо писати зайве, якщо нам потрібно збільшити чи зменшити змінну лише на 1? Добре, що таке інкрементування і декрементування розібралися, але це ще не все. Інкремент і декремент мають 2 форми — prefix і postfix . О боже що це, подумали ви?) Не лякайтеся: тут теж все легко. Prefix , або Префіксна форма, описується перед змінною " ++xабо --x", спочатку ікрементує або декрементує змінну. Postfix , або Постфіксна форма, описується після змінної " x++або "x--", ікрементує або декрементує змінну після обчислення. Якщо ви звернули увагу на слово обчислення, то зробабо це не дарма, тому що обидві форми працюють однаково, якщо не використовуються у обчисленнях. Ось вам приклад без обчислень:
int x = 10, z = 10;
x++;
++z;

System.out.println("x: " + x + ", z: " + z);
У результаті обидві змінні дорівнюватимуть 11. А ось приклад з обчисленням:
int x = 10, c = 10;
final int y = 13 - x++;
final int z = 13 - ++c;

System.out.println("y: " + y + ", z: " + z);
Як бачимо, обидві змінні " xі c" рівні та рівняння аналогічні, АЛЕ використовуються різні форми запису оператора інкременту. В результаті обчислень змінна y буде 3, а ось zбуде 2. Ви вже напевно здогадалися чому, виходячи з того, що написано вище. Якщо ні, то давайте "розжуємо" всі разом. Постфіксна форма спрацює після обчислень, а це означає, що рівняння спрацює так:
x = 10;

// Начало уравнения.
y = 13 - x; // С начала производим вычисление (x все еще 10)
x += 1; // Производим увеличение на 1
// Конец уравнения.
Префіксна ж спрацює так:
c = 10;

// Начало уравнения.
c += 1; // Производим увеличение на 1
z = 13 - c; // Производим вычисление (c уже 11)
// Конец уравнения.
Ну от і вся історія :) Сподіваємось, для вас це було корисно та пізнавально. Успіхів у освоєнні Java ;) Вивчити та попрактикуватися у використанні інкременту, декременту та інших операторів у Java можна на курсі Javarush у квесті Java Multithreading:
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ