Menu

Estruturas de Repetição - While

Estruturas de repetição fazem parte do pacote básico de quem está aprendendo a programar, e ajudam no controle do fluxo de execução de determinada parte do código. É muito útil e bastante utilizado para... hum.. tudo. :)

Enquanto (while)

A estrutura mais simples, executa uma ação enquanto determinada condição for verdadeira.


Em C++/C:

while (condição)
{
    código;
    código;
    (...)
}


Podemos observar que logo depois do while, vem uma condição. Essa condição é verificada antes de entrar no "laço" de repetição e só vai parar de repetir quanto a condição se tornar falsa.
Por exemplo, vamos imprimir os números na tela começando do 100 e terminando no 0.



Entendendo o programa:


Começamos declarando uma variável inteira i e atribuímos o valor 100 a ela.
A linha seguinte é o inicio do while, a condição que usamos de parada é i ser menor ou igual a zero. Se for verdadeiro, o programa vai executar o que esta entre as chaves {}, caso for negativo o programa vai "pular" o que está entre chaves e executar o que tiver depois, se não tiver nada, é o fim do programa.
Como 100 é maior ou igual a 0, ele entra no loop. A primeira instrução é imprimir na tela o valor da variável i e quebrar uma linha (endl).
A segunda instrução no loop atribui um novo valor pra variável i, o que é importantíssimo pois ninguém quer cair num loop infinito, não é?!
Então i receberá o seu próprio valor subtraído de uma unidade, vamos fazer a conta:
i = 100 - 1;
i = 99;
Novo valor de i: 99!
Agora, o programa volta no while, e verifica a condição de novo.
(99 é maior ou igual a zero?)
É! Então ele executa as duas instruções de novo, imprimir o valor de i na tela e decrementar uma unidade do mesmo.
Isso vai acontecer até que i chegue a -1, em que a condição não será verificada e sairá do loop!
O return 0 é a instrução logo depois do loop que indica o fim do programa.

Outra possibilidade: Faça... Enquanto.

Outra forma de se utilizar o enquanto (while) é colocando sua condição de verificação (também chamada de flag) no final. Assim, o que estiver dentro do loop será executado uma vez e só se repetirá caso a condição seja verdadeira.  Dá pra ver claramente a diferença! O primeiro testa e depois executa este executa e depois testa. 


do {
   Código;
   Código;
} while(condição);
Pode ser utilizado para realizar cadastro de clientes, por exemplo. O programa pede os dados do cliente e solicita confirmação se deseja incluir mais... Enquanto o usuário desejar incluir mais cliente o programa não sairá do Loop. Essa condição pode ser enquanto o usuário não digitar zero ou clicando no botão de "ok"/"cancelar", etc
Qualquer coisa que seja fácil de implementar e você consiga fazer funcionar!!