Olá desenvolvedores, vamos falar hoje exclusivamente sobre as estruturas de repetição While e Do While. Muito embora no tutorial “ESTRUTURA DE REPETIÇÃO” tivemos uma longa conversa sobre estas estruturas em um contexto generalizado. O tutorial de hoje será dedicado a um contexto específico. Tais estruturas servem para processar dados continuamente até que uma condição seja satisfeita.
Assim, o While é uma instrução que permite especificar que um programa deve repetir uma ação enquanto alguma condição permanece verdadeira. Esta condição é uma expressão booleana. E as instruções contidas nesta estrutura, que podem ser tanto um bloco como uma única instrução constituem o corpo da “função”.
Há muito conteúdo sobre as estruturas de repetição aqui, e você pode acessá-los na aba tutorias do site JDev Treinamento. O laço de repetição While, processa uma instrução zero o mais vezes. Isto é, enquanto a condição de continuação do loop for verdadeira.
O Do While por sua vez processa uma instrução ou bloco de instruções necessariamente uma vez e se necessário outras tantas vezes.
ESTRUTURA DE REPETIÇÃO WHILE
Cada aplicação será constituída da quantidade de combinações de estruturas de repetição e tomadas de decisão que forem necessárias. E neste caso, estamos falando de dezenas dessas estruturas em uma única aplicação. Mas antes de falarmos acerca de como a estrutura While é composta vou exemplifica-la com um exemplo simples.
Crie um algoritmo para encontrar o primeiro múltiplo de 7 maior que 100. Utilizaremos uma variável “mult” para receber o resultado da operação. Utilizaremos também um contador, ambos inicializados com zero.
Cada iteração do While multiplica o contador por 7. Assim a variável mult assume os valores 0, 7, 14, 21, 28, 35, 42 … 98, 105 sucessivamente. Quando o resultado 105 é encontrado, a expressão (mult <= 100) se torna falsa. E esta a condição de encerramento do programa. Dessa forma o processamento é encerrado e o resultado é exibido na tela para o usuário.
Observando atentamente esta estrutura você pode notar que ela é composta por 4 elementos. A inicialização mult = 0; a condição mult <= 100; o corpo da instrução mult = 7 * cont; e a iteração. Sendo esta o contador ou variável de controle cont++;. Mas nem sempre será necessário um contador.
Antes de falarmos sobre o Do While, uma importante orientação é necessária. Entenda que em algum momento da iteração, a estrutura de repetição deverá encontrar um valor de condição que seja falso. Esta condição serve para que o processamento seja interrompido, caso contrário entrará em um loop infinito.
ESTRUTURA DE REPETIÇÃO DO WHILE
O laço de repetição Do While é uma variação do primeiro. A principal diferença entre elas, além da forma como são estruturadas é comportamento assumido por elas. como você pôde notar o While executará uma instrução zero ou mais vezes. Ao passo que o Do While processará uma instrução pelo menos uma vez.
Em outras palavras, o bloco de instrução será executado pelo menos uma vez antes que a condição do loop seja testada. Que tal agora um exemplo?
Escreva um algoritmo que deverá escrever no console a mensagem “Formação Java Web”. E deverá fazê-lo enquanto a variável “cont” for maior ou igual a 1. Entretanto, a variável será inicializada com o valor zero. Veja o que irá acontecer.
O que acontecerá é que com o Do While pelo menos uma vez ele escreverá a mensagem no console. Visto que primeiro ele processa a instrução e somente depois faz a verificação. A condição de parada é “cont >= 1”. Mas ele já começa com um valor menor que “1”, e em um contexto onde não existe variável de controle.
Agora vamos alterar o valor do contador para 10 e adicionar uma variável de controle ao final da mensagem. A função da variável de controle e/ou contador será decrementar o contador sempre que a instrução for processada. Se não o fizermos entraremos no caso do loop infinito.
Assim, a saída do algoritmo será como mostra a imagem abaixo:
EM POUCAS PALAVRAS
A respeito dos laços de repetição você sabe o que recomendam as boas práticas de programação? Recomendam que utilizemos o while quando não soubermos exatamente a quantidade de vezes que uma dada instrução deverá ser processada. E, neste caso, devemos impor uma condição de parada.
E ainda, existe uma situação qual chamamos de repetição definida. Esta situação ocorre quando o número de execuções é antecipadamente conhecido. Ou seja, a quantidade de repetições é conhecida antes do loop começar. E para esta situação recomenda-se o uso do for, qual veremos em outro tutorial.
Esta repetição definida, pode acontecer também com os laços de repetição que aprendemos hoje. Mas recomendamos que você adote as boas práticas de programação e principalmente o bom senso.
É isso desenvolvedores, espero que tenham gostado de aprender sobre a estrutura de repetição While e a estrutura de repetição Do While.