Iterace je akt opakování procesu, generování posloupnosti výsledků (možná neomezených) s cílem přiblížit se požadovanému účelu nebo výsledku. V kontextu matematiky nebo informatiky je iterace (spolu se související technikou rekurze) standardním stavebním kamenem algoritmů.
V počítačovém programování je iterace, nazývaná také anglickou termínovou smyčkou, řídicí struktura v rámci algoritmu, který řeší daný problém, který nařizuje počítači opakovaně vykonávat posloupnost instrukcí, obvykle až do výskytu konkrétní logické podmínky.
Je důležité si uvědomit, že posloupnost a výběr tvoří jednu ze tří základních struktur pro algoritmické řešení konkrétního problému podle Böhm-Jacopiniho věty. Existuje několik forem iterace; nejznámější jsou MENTRE, REPEAT a PER. Dá se říci, že iterace je silná vazba programování, která umožňuje automatizovat výkon procesu, což nestačí k jednoduchému provedení posloupnosti pokynů.
Takzvaná „nekonečná smyčka“ je případem iterace kvůli programovací chybě, která zastaví provádění programu, zatímco v některých programovacích technikách, zejména u mikrokontrolérů, se používá záměrně k nekonečné iteraci v rámci programu.
Ve vývoji softwaru se iterativní používá k popisu heuristického procesu plánování a vývoje, kde je aplikace vyvíjena v malých částech nazývaných iterace. Každá iterace je kontrolována a kritizována softwarovým týmem a potenciálními koncovými uživateli; Poznatky získané z kritiky iterace se používají k určení dalšího kroku ve vývoji. Datové modely nebo sekvenční diagramy, které se často používají k vykreslení iterací, sledují, co bylo vyzkoušeno, schváleno nebo vyřazeno, a nakonec slouží jako druh plánu pro konečný produkt.
Úkolem iterativního vývoje je zajistit, aby všechny iterace byly kompatibilní. Jakmile je schválena každá nová iterace, mohou vývojáři použít techniku známou jako zpětné inženýrství, což je systematický postup kontroly a ověřování, aby se ujistil, že každá nová iterace je kompatibilní s předchozími. Výhodou použití iterativního vývoje je, že do procesu vývoje je zapojen koncový uživatel. Spíše než čekat, až bude aplikace konečným produktem, když změny nejsou snadno možné, jsou problémy identifikovány a vyřešeny v každé fázi vývoje. Iterativní vývoj se někdy nazývá kruhový nebo evoluční vývoj.