Итератион је чин понављања процеса, да генерише секвенца резултата (евентуално неограничену), са циљ прилажења жељени циљ или резултат. У контексту математике или рачунарства, итерација (заједно са сродном техником рекурзије) стандардни је блок алгоритама.
У рачунарском програмирању, итерација, такође названа енглеским термином петља, је контролна структура унутар алгоритма који решава задати проблем, а која налаже рачунару да у више наврата извршава низ наредби, углавном до појаве специфични логички услови.
Важно је нагласити да низ и избор чине једну од три основне структуре за алгоритамско решавање датог проблема према Бохм-Јацопини теореми. Постоји неколико облика понављања; најпознатији су МЕНТРЕ, РЕПЕАТ и ПЕР. Може се рећи да је итерација јака карика програмирања која вам омогућава аутоматизацију извођења процеса, што није довољно за једноставно извршавање низа инструкција.
Такозвана „бесконачна петља“ случај је итерације због програмске грешке која зауставља извршавање програма, док се у неким техникама програмирања, посебно код микроконтролера, намерно користи за бесконачно понављање унутар програма.
У развоју софтвера, итерација се користи за опис хеуристичког процеса планирања и развоја, где се апликација развија у малим одељцима који се називају итерације. Сваку итерацију прегледава и критикује тим софтвера и потенцијални крајњи корисници; Увиди стечени критиком итерације користе се за одређивање следећег корака у развоју. Модели података или дијаграми секвенци, који се често користе за цртање итерација, прате шта је испробано, одобрено или одбачено и на крају служе као нека врста нацрта коначног производа.
Изазов с итеративним развојем је бити у могућности да се осигура да су све итерације компатибилне. Како се свака нова итерација одобрава, програмери могу користити технику познату као уназадњи инжењеринг, што је систематски поступак прегледа и верификације како би били сигурни да је свака нова итерација компатибилна са претходним. Предност коришћења итеративног развоја је у томе што је крајњи корисник укључен у процес развоја. Уместо да се чека док апликација не постане коначни производ, када се промене не могу лако извршити, проблеми се идентификују и решавају у свакој фази развоја. Итеративни развој се понекад назива кружним или еволуционим развојем.