Многие новички не знают, что такое инкремент и декремент, но уверены, все видели использование "![Что такое инкрементирование и декрементирование - 1]()
i++
, ++i
, i--
или --i
" в цикле for
.
Итак, немного пояснений.

Что такое инкремент?
Инкремент — это операция во многих языках программирования, которая выполняет увеличение переменной. Чаще всего под инкрементом подразумевается увеличение переменной на 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:
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ