Iterácia je akt opakovania procesu, ktorého cieľom je vygenerovať postupnosť výsledkov (možno neobmedzených) s cieľom priblížiť sa k požadovanému účelu alebo výsledku. V kontexte matematiky alebo informatiky je iterácia (spolu s príbuznou technikou rekurzie) štandardným stavebným prvkom algoritmov.
V počítačovom programovaní je iterácia, nazývaná tiež anglickým výrazom loop, riadiaca štruktúra v rámci algoritmu, ktorý rieši daný problém, ktorý ukladá počítaču opakovane vykonávať postupnosť pokynov, zvyčajne až do výskytu konkrétne logické podmienky.
Je dôležité poznamenať, že postupnosť a výber tvoria jednu z troch základných štruktúr pre algoritmické riešenie konkrétneho problému podľa Böhm-Jacopiniho vety. Existuje niekoľko foriem iterácie; najznámejšie sú MENTRE, REPEAT a PER. Dá sa povedať, že iterácia je silná väzba programovania, ktorá umožňuje automatizovať výkon procesu, čo nestačí na jednoduché vykonanie postupnosti pokynov.
Takzvaná „nekonečná slučka“ je prípad iterácie kvôli programovacej chybe, ktorá zastaví vykonávanie programu, zatiaľ čo v niektorých programovacích technikách, najmä pri mikrokontroléroch, sa používa zámerne na nekonečné opakovanie v rámci programu.
Pri vývoji softvéru sa iterácia používa na popis heuristického procesu plánovania a vývoja, pri ktorom sa aplikácia vyvíja v malých častiach nazývaných iterácie. Každá iterácia je skontrolovaná a kritizovaná softvérovým tímom a potenciálnymi koncovými používateľmi; Poznatky získané z kritizácie iterácie sa používajú na určenie ďalšieho kroku vo vývoji. Dátové modely alebo sekvenčné diagramy, ktoré sa často používajú na vykreslenie iterácií, sledujú, čo bolo vyskúšané, schválené alebo zahodené, a nakoniec slúžia ako akýsi plán konečného produktu.
Výzvou pri iteračnom vývoji je zabezpečiť, aby boli všetky iterácie kompatibilné. Keď je schválená každá nová iterácia, môžu vývojári použiť techniku známu ako spätné inžinierstvo, čo je systematický postup kontroly a overovania, aby sa zabezpečila kompatibilita každej novej iterácie s predchádzajúcimi. Výhodou použitia iteratívneho vývoja je, že do procesu vývoja je zapojený koncový používateľ. Namiesto čakania na konečný produkt, keď nie je možné ľahko vykonať zmeny, sa v každej fáze vývoja identifikujú a vyriešia problémy. Iteračný vývoj sa niekedy nazýva kruhový alebo evolučný vývoj.