Инкремент

Из Википедије, слободне енциклопедије

Инкремент је фиксно или променљиво повећање неке вредности. На пример, плата се може фиксно повећавати на годишњем нивоу, или се може променљиво повећавати (процентуално у односу на тренутну вредност). Смањење неке вредности се назива декремент.

Инкремент се такође може односити и на постепену промену, а не само на тренутну промену.

Употреба у науци и техници[уреди]

Инкременталне промене су постепена побољшања насупрот револуционарним променама. На пример, проналазак унутрашње гуме је био само инкрементална промена у конструкцији точка, док је проналазак мотора са унутрашњим сагоревањем била револуционарна промена у односу на возила која су покретале животиње.

Употреба у програмским језицима[уреди]

Инкрементирање је у сталној употреби у програмирању, као на пример у петљама које итерирају кроз неки скуп.

На пример, у Јаваскрипт језику, који је преузео сличну синтаксу од језика попут C-a, C++-a или Јаве, унарни оператор за инкремент је:

x++

Оператор за декремент је:

x--

Као додатак овоме, оператор за инкремент се може писати и као x++ и као ++x, али са различитим значењима. На пример:

 var y = ++x

је познат као преинкремент, скраћено за:

 x = x+1
 var y = x

док је,

var y = x++

познат као постинкремент, скраћено за:

 var y = x
 x = x+1

--x (предекремент) такође има различито значење од x-- (постдекремент), а оба прате исту логику значења као и код оператора за инкрементирање.

Неки језици, као C и C++ не специфицирају када се инкрементирање дешава, да ли пре или после употребе, пре или после целе наредбе, или пак негде између. Због овога, употреба оператора за инкрементирање (или декрементирање) над истом променљивом у истој наредби резултује у непредвидљивом понашању. Исти изворни код тада може дати различите резултате када се компајлира различитим компајлерима, или на различитим архитектурама, или чак на истом компајлеру са различитим оптимизационим подешавањима. На пример,

int x = 0
x = x++

може довести до тога да x има различите вредности, 0 или 1, зависно од компајлера. Слично томе,

int x = 0
int y = x++ + x++

може довести до тога да y може добити вредности 0 или 1 или чак и 2.

У C++-у угнежђени оператор за инкрементирање је дозвољен, али само за преинкрементирање и није применљив на оператор декрементирања.

         Нпр.: int x = 0;
             ++(++x); је дозвољено али (x++)++, --(--x) или (x--)-- није могуће.