Cursos / Automação Industrial / Lógica de Programação / Aula

arrow_back Aula 06 - Repetição Enquanto

Repetindo... (cont)

Veja agora a solução para impressão de 30 vezes a mensagem "Olá, seja bem-vindo!" utilizando a estrutura de repetição enquanto. Observe com atenção o comando!

No exemplo, na linha 1, é declarada uma variável chamada contador, que recebe o valor inicial 1. A linha 2 possui a estrutura de repetição enquanto, na qual há a expressão lógica 'contador <= 30'. Se essa expressão lógica for verdadeira, os comandos entre as palavras faça e fim serão repetidos (linhas 3 e 4). Quando a expressão se tornar falsa (o valor da variável contador for maior do que 30), os comandos presentes nas linhas 3 e 4 não serão mais executados e o algoritmo continuará após o comando fim da linha 5.

A expressão 'contador <= 30' foi utilizada para definir quantas vezes será repetido o conteúdo do comando enquanto. Nesse exemplo, se não fosse utilizada uma variável para definir a quantidade de vezes que ele deverá ser repetido e a expressão presente na linha 4, o algoritmo não seria finalizado, pois não encontraria a condição de parada, já que a expressão 'contador <= 30' sempre seria verdadeira, pois o valor presente na variável contador nunca se modificaria. Isso significa que o conteúdo (os comandos) entre faça e fim seria executado por infinitas vezes.

Em outras palavras, para que esse enquanto seja encerrado (finalizado), é necessário que a expressão 'contador <= 30' torne-se falsa. Assim, na linha 5, a cada vez que o conteúdo do comando enquanto é repetido, é somado mais 1 ao valor armazenado na variável contador. Dessa forma, após 30 repetições, o valor dessa variável será 31 e a expressão 'contador <= 30' deixará de ser verdadeira, tornando-se falsa. A partir desse momento, o enquanto não será mais executado.

Quando a estrutura de decisão não for mais executada, o programa continuará a partir da linha seguinte, que, no exemplo, equivale à linha 6.

Em um comando de repetição enquanto, a repetição será sempre condicionada a uma expressão lógica. Repare que, quando se utiliza a estrutura de decisão se...então, há necessidade, também, de uma expressão lógica. A diferença entre esses comandos é que na estrutura de decisão desvia-se o fluxo para um bloco de comandos, já na estrutura de repetição é preciso decidir se o conteúdo deverá ser executado (ou repetido).

Nesse sentido, enquanto o valor da variável contador for menor ou igual a 30, a expressão 'contador <= 30' causará a repetição do bloco enquanto, pois o resultado da expressão é verdadeiro. A partir do momento que contador possuir um valor maior do que 30, a expressão será falsa e a repetição deixará de ocorrer.

Você pode questionar: "Se não tivesse o comando da linha 4, o que aconteceria?". Caso em uma estrutura de repetição não seja alterado o valor da variável utilizada na expressão lógica do enquanto, o algoritmo repetirá o seu conteúdo por quantidade de vezes indefinida. Assim, acontecerá o que se chama de loop infinito, pois o algoritmo "ficará preso permanentemente na repetição", uma vez que a expressão 'contador <= 30' não será falsa em nenhum momento.

Atenção

Um algoritmo deve possuir uma finitude, ou seja, ele deve encerrar após executar os seus passos com sucesso. Um algoritmo que não conclui a execução de seu código é considerado incorreto. Por esse motivo, deve-se sempre ficar atento para construir algoritmos que não fiquem executando em loop infinito.

Estruturas de repetição

São comandos que realizam a repetição de um determinado conjunto de ações (blocos de códigos). Essa repetição tem como objetivo realizar, de forma controlada, a execução de passos que devem ser repetidos, até que uma determinada condição seja falsa.

Atenção

O comando repetição enquanto também recebe o nome de comando de iteração, em razão de ser utilizado para realizar a repetição de um bloco de comando(s), e a palavra "iteração" ser um sinônimo de repetição. Então, não se deve confundir iteração com interação (uma ação recíproca entre dois ou mais elementos).

Versão 5.3 - Todos os Direitos reservados