5.5. Estruturas de Repetição

Uma estrutura muito usada é a de repetição, esta estrutura é útil quando um código igual ou semelhante deve ser repetido N vezes, sendo N pré-definido ou não. Por exemplo, você quer somar todos números que o usuário fornecer, para isso você precisa ler um número e guardá-lo, depois ler mais um e adicioná-lo, em seguida, ler mais um e adicioná-lo e, assim por diante. Notou que repetiremos a leitura do número e a adição dele a uma variável? Em casos do tipo, usamos um laço, um loop, ou seja, a estrutura de Repetição.

As linguagens costumam ter comandos para laços lógicos que podem ser pré-fixados ou pós-fixados e um comando para laço número. Assim temos:

  • Repetição Lógica Pré-fixada: Nesta repetição definimos uma expressão condicional que é avaliada antes do loop acontecer, caso seja verdadeira, o loop irá ser executado e a cada iteração (execução do código no loop ou volta no loop) a condição da expressão é novamente avaliada, por exemplo, enquanto o valor for diferente de 0 continue o loop.

  • Repetição Lógica Pós-fixada: Nesta repetição definimos uma expressão condicional que é avaliada após a primeira execução/iteração do loop, caso seja verdadeira, o loop irá continuar a ser executado e a cada iteração (execução do código no loop ou volta no loop) a condição da expressão é novamente avaliada, por exemplo, enquanto o valor for diferente de 0 continue o loop.

  • Repetição Numérica: Nesta repetição definimos um contador e um valor inicial para este contador, além disso definimos uma forma de alteração do seu valor (incremento ou decremento) e informamos uma expressão para que ele tenha uma condição de parada, por exemplo, comece a conta em 1, acrescente 1 a cada iteração e termine quando chegar em 10.

Alteração do fluxo normal do loop

As linguagem costumam ter formas de alterar o fluxo normal de uma repetição, o fluxo normal é a execução de todo o código dentro do loop, contudo as linguagem costumam ter palavras reservadas para duas ocasiões, uma para parar o loop e uma para avançar para a próxima iteração sem precisar terminar a iteração atual. Nas próximas seções tudo isso será apresentado em cada uma das linguagens.