Инкремент
Инкреме́нт, инкрементирование (от англ. increment «увеличение») — операция во многих языках программирования, увеличивающая значение переменной. Обратную операцию называют декремент (уменьшение). Чаще всего унарная операция приводит значение переменной к следующему элементу базового типа (то есть для целых чисел — увеличивает на 1, для символьного типа даёт следующий символ в некоторой таблице символов и т. п.)
Использование в языках программирования
Инкремент часто используется в языках программирования (равно как и в машинном языке большинства микропроцессоров), например, при организации цикла, где какая-то величина в каждом новом шаге цикла становится больше на единицу.
Для примера возьмём язык программирования JavaScript:
x++
Соответствующий ему декремент выглядит так:
x--
Оператор инкрементирования можно записывать с обеих сторон («префиксный инкремент» ++x
и «постфиксный инкремент» x++
). От этого зависит результат операции, но не его побочного действия. Так:
let y = ++x
можно записать, как
x = x + 1
let y = x
В то время, как
let y = x++
эквивалентно
let y = x
x = x + 1
«префиксный декремент» --x
и «постфиксный декремент» x--
действуют аналогично на переменную x
, уменьшая её.
Использование в наименованиях
Обозначение оператора унарного постфиксного инкремента используется в названии языка программирования C++, как указание на его усовершенствование относительно своего предшественника (язык С)
Аналогичным образом назван текстовый редактор Notepad++, отсылающий к не связанной с ним программе Notepad.
В Agile используется технология PI-планирования (Program Increment Planing, планирование инкремента программы) которое распределяет значимость и порядок выполнения поставленных задач между командами. Основная цель скоординировать команды друг с другом и упорядочить выполнение задач[1].
Выполнение операции
Поскольку операция инкремента (как и декремента) используется очень часто, арифметическое устройство процессора может выполнять её на аппаратном уровне, для чего имеется отдельная низкоуровневая команда. Поэтому инкремент выполняется быстрее, чем если бы производилось прибавление единицы к числу обычным способом. Поэтому для компиляторов языка Си, которые плохо оптимизируют исходный код программы, запись ++x
предпочтительнее, чем x = x + 1
или x += 1
, хотя большинство современных компиляторов языка Си уже без проблем сами заменяют арифметические выражения x = x + 1
или x += 1
на низкоуровневый инкремент на этапе оптимизации и компиляции.