Iteração é o ato de repetir um processo, para gerar uma sequência de resultados (possivelmente ilimitada), com o objetivo de se aproximar de um propósito ou resultado desejado. No contexto da matemática ou da ciência da computação, a iteração (junto com a técnica de recursão relacionada) é um bloco de construção padrão de algoritmos.
Na programação de computadores, iteração, também chamada pelo termo inglês loop, é uma estrutura de controle, dentro de um algoritmo que resolve um determinado problema, que ordena ao computador a execução repetida de uma sequência de instruções, geralmente até a ocorrência de condições lógicas específicas.
É importante destacar que a sequência e a seleção constituem uma das três estruturas fundamentais para a resolução algorítmica de um problema específico de acordo com o teorema de Böhm-Jacopini. Existem várias formas de iteração; os mais conhecidos são o MENTRE, o REPEAT e o PER. Pode-se dizer que a iteração é o elo forte da programação que permite automatizar o desempenho de um processo, o que não basta para simplesmente executar uma seqüência de instruções.
O chamado "loop infinito" é um caso de iteração devido a um erro de programação que interrompe a execução do programa, enquanto em algumas técnicas de programação, especialmente com microcontroladores, é usado deliberadamente para iterar infinitamente dentro do programa.
No desenvolvimento de software, a iterativa é usada para descrever um processo de planejamento e desenvolvimento heurístico em que um aplicativo é desenvolvido em pequenas seções chamadas de iterações. Cada iteração é revisada e criticada pela equipe de software e usuários finais em potencial; Os insights obtidos ao criticar uma iteração são usados para determinar a próxima etapa do desenvolvimento. Modelos de dados ou diagramas de sequência, que geralmente são usados para traçar iterações, controlar o que foi tentado, aprovado ou descartado e, por fim, servem como uma espécie de plano para o produto final.
O desafio do desenvolvimento iterativo é garantir que todas as iterações sejam compatíveis. À medida que cada nova iteração é aprovada, os desenvolvedores podem empregar uma técnica conhecida como engenharia reversa, que é uma revisão sistemática e procedimento de verificação para garantir que cada nova iteração seja compatível com as anteriores. A vantagem de usar o desenvolvimento iterativo é que o usuário final está envolvido no processo de desenvolvimento. Em vez de esperar até que o aplicativo seja um produto final, quando as alterações não podem ser feitas facilmente, os problemas são identificados e resolvidos em cada estágio de desenvolvimento. O desenvolvimento iterativo às vezes é chamado de desenvolvimento circular ou evolutivo.