• ,

Что такое инкрементирование и декрементирование

Многие новички не знают что такое инкремент и декремент, но уверен все видели использование «i++, ++i, i-- или --i» в цикле for.

И так немного пояснении.
Инкремент: Обозначается двумя знаками плюс "++" и увеличивает значение переменной на 1
Декремент: Обозначается двумя знаками минус "--" и уменьшает значение переменной на 1

Пример:

		int x = 10, z = 10;
		x++;
		z--;

		System.out.println("x: " + x + ", z: " + z);


В результате:
  • x будет инкрементирована
  • z будет декрементирована
Это значит что x будет равна 11, а x будет равно 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", изначально икрементирует или декрементирует переменную. (От слова Pre в переводе перед)
Postfix или Постфиксная форма описывается после переменной «x++ или x--», икрементирует или декрементирует переменную после вычисления. (От слова Post в переводе после)

Если Вы обратили внимание на слово вычисления то не зря, так как обе формы работают аналогично если не используются в вычислениях.
Вот Вам пример без вычислении:

		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 ;)

PS: Многого еще не написал но увы времени пока нет на продолжение, но если кому то будет интересно и появится время напишу вторую статью продолжение.

1 комментарий

Dyadya13
Спасибо за статью, всё ясно изложено, коротко и ясно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.