L2CCCP
9 уровень
Калининград

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

Пост из группы Архив info.javarush.ru
3276 участников
Многие новички не знают что такое инкремент и декремент, но уверен все видели использование "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 11 уровень, Санкт-Петербург
16 февраля 2017, 15:21
Спасибо за статью, всё ясно изложено, коротко и ясно.