Loops WHILE e DO WHILE

Descrição e diferentes usos dos dois tipos de loops WHILE com alguns exemplos.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 26/10/04
Valorize este artigo:
Vejamos agora os dois tipos de loops WHILE que podemos utilizar em Javascript e os usos de cada um.

Loop WHILE

Estes loops se utilizam quando queremos repetir um número indefinido de vezes a execução de umas sentenças, sempre que se cumpra uma condição. Sim, que é mais simples de compreender que o loop FOR, pois não incorpora na mesma linha a iniciação das variáveis, sua condição para continuar executando e sua atualização. Somente se indica, como veremos a seguir, a condição que tem que se cumprir para que se realize uma repetição.

while (condição){
    sentenças a executar
}

Um exemplo de código onde se utiliza este loop pode ser visto a seguir:

var color = ""
while (color != "vermelho")
    color = me dá uma cor
}

Este é um exemplo do mais simples do que se pode fazer com um loop while. O que faz é pedir que o usuário introduza uma cor, mas que não seja a cor vermelha. Para executar um loop como este primeiro temos que iniciar a variável que vamos utilizar na condição de repetição do loop. Com a variável iniciada podemos escrever o loop, que comprovará para executar que a cor da variável seja diferente de "vermelha". Em cada repetição do loop pede-se uma nova cor ao usuário para atualizar a variável cor e termina-se a repetição, com o que retornamos ao princípio do loop, onde temos que voltar a avaliar se o que há na variável cor é "vermelha" e assim sucessivamente enquanto não seja introduzido como cor o texto "vermelho". Obviamente, a expressão "me dá uma cor" não é Javascript, mas como ainda não sabemos como escrever isso em Javascript, é melhor vê-lo mais adiante.

Loop DO...WHILE

É o último dos loops que há em Javascript. Utiliza-se geralmente quando não sabemos quantas vezes haverá de se executar o loop, assim como o loop WHILE, com a diferença de que sabemos ao certo que o loop pelo menos se executará uma vez.

Este tipo de loop se introduziu em Javascript 1.2, portanto, nem todos os navegadores o suportam, somente os de versão 4 ou superior. Em qualquer caso, qualquer código que se queira escrever com DO...WHILE pode ser escrito também utilizando um loop WHILE, com o qual em navegadores antigos deverá traduzir o loop DO...WHILE por um loop WHILE.

A sintaxe é a seguinte:

do {
    sentenças do loop
} while (condição)

O loop se executa sempre uma vez e ao final se avalia a condição para dizer se se executa outra vez o loop ou se termina sua execução.

Vejamos o exemplo que escrevemos para um loop WHILE neste outro tipo de loop:

var color
do {
    color = me dá uma cor
} while (color != "vermelho")

Este exemplo funciona exatamente igual que o anterior, exceto que não tivemos que iniciar a variável cor antes de introduzirmos no loop. Pede uma cor contanto que a cor introduzida seja diferente de "vermelho".

Exemplo

Vamos ver a seguir um exemplo mais prático sobre como trabalhar com um loop WHILE. Como é muito difícil fazer exemplos práticos, com o pouco que sabemos sobre Javascript, vamos adiantar uma instrução que ainda não conhecemos.

Neste exemplo vamos declarar uma variável e iniciá-la a 0. Logo, iremos somando a essa variável um número aleatório do 1 ao 100 até somarmos 1.000 ou mais, imprimindo o valor da variável soma depois de cada operação. Será necessário utilizar o loop WHILE porque não sabemos exatamente o número de repetições que teremos que realizar.

var soma = 0
while (soma < 1000){
    soma += parseInt(Math.random() * 100)
    document.write (soma + "<br>")
}

Supomos que no que diz respeito ao loop WHILE não haverá problemas, mas onde sim que pode haver é na sentença utilizada para tomar um número aleatório. Entretanto, não é necessário explicar aqui a sentença porque já temos planejado fazer mais adiante.

Podemos ver uma página com o exemplo em funcionamento.





Comentários do artigo
Foram enviados 2 comentários ao artigo
1 comentário não revisado
1 comentário revisado:
javascripts
Por: americojose123
16/7/11
Adorei a forma clara com que +e apresentada.

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato