Iteracja to czynność powtarzania procesu w celu wygenerowania sekwencji wyników (możliwie nieograniczonych), w celu zbliżenia się do pożądanego celu lub rezultatu. W kontekście matematyki lub informatyki iteracja (wraz z pokrewną techniką rekurencji) jest standardowym budulcem algorytmów.
W programowaniu komputerowym iteracja, nazywana również pętlą w języku angielskim, jest strukturą sterującą, w ramach algorytmu rozwiązującego dany problem, która nakazuje komputerowi powtarzalne wykonanie sekwencji instrukcji, na ogół do momentu wystąpienia określone warunki logiczne.
Należy zauważyć, że sekwencja i selekcja stanowią jedną z trzech podstawowych struktur algorytmicznego rozwiązania określonego problemu zgodnie z twierdzeniem Böhma-Jacopiniego. Istnieje kilka form iteracji; najbardziej znane to MENTRE, REPEAT i PER. Można powiedzieć, że iteracja jest silnym ogniwem programowania, które pozwala zautomatyzować wykonanie procesu, co nie wystarczy do prostego wykonania sekwencji instrukcji.
Tak zwana „nieskończona pętla” to przypadek iteracji spowodowany błędem programowania, który zatrzymuje wykonywanie programu, podczas gdy w niektórych technikach programowania, zwłaszcza w przypadku mikrokontrolerów, jest ona celowo używana do nieskończonej iteracji w programie.
W tworzeniu oprogramowania iteracja jest używana do opisania heurystycznego procesu planowania i rozwoju, w którym aplikacja jest tworzona w małych sekcjach zwanych iteracjami. Każda iteracja jest przeglądana i krytykowana przez zespół oprogramowania i potencjalnych użytkowników końcowych; Spostrzeżenia zdobyte podczas krytyki iteracji są wykorzystywane do określenia następnego kroku w rozwoju. Modele danych lub diagramy sekwencji, które są często używane do wykreślania iteracji, śledzenia tego, co zostało wypróbowane, zatwierdzone lub odrzucone, i ostatecznie służą jako rodzaj projektu końcowego produktu.
Wyzwaniem związanym z rozwojem iteracyjnym jest zapewnienie kompatybilności wszystkich iteracji. Po zatwierdzeniu każdej nowej iteracji programiści mogą zastosować technikę zwaną inżynierią wsteczną, która jest procedurą systematycznego przeglądu i weryfikacji, aby upewnić się, że każda nowa iteracja jest zgodna z poprzednimi. Zaletą korzystania z programowania iteracyjnego jest to, że użytkownik końcowy jest zaangażowany w proces tworzenia. Zamiast czekać, aż aplikacja będzie produktem końcowym, kiedy nie można łatwo wprowadzić zmian, problemy są identyfikowane i rozwiązywane na każdym etapie rozwoju. Rozwój iteracyjny jest czasami nazywany rozwojem cyrkularnym lub ewolucyjnym.