O Loop DO WHILE em JavaScript

Neste tutorial de laços, vamos apresentar o último loop: o do ... while.

Loop DO ... WHILE: O que é? Como usar ?

Como o nome pode sugerir, ele tem algo a ver com o laço WHILE.

No loop while ocorria o seguinte: primeiro era realizado um teste condicional, e somente se este fosse verdadeiro é que o JS entrava no looping.

Com o laço DO WHILE isso vai ser diferente.
Vamos ver como declarar o do while:

do{
  [codigo];
  [codigo];
  [codigo];
}while(teste);

Primeiro abrimos o laço com o comando do.
Do, em inglês, é fazer.

Então, o código que vem em seguida é executado.
Ao final dele, é realizado o teste condicional.

Se este teste for TRUE, o código depois do do é executado novamente, e assim segue, enquanto o teste não for FALSE.

Exemplo de uso do loop DO WHILE

Laços do while são muito usados para exibir menu, pedir dados, senhas...
Vamos criar um script que pede uma senha ao usuário.

Se a senha estiver correta, ele entra no sistema.
Se estiver errada, avisa e pede a senha novamente.

Veja o código HTML:

<!DOCTYPE html>
<html>
 <head>
   <title>Apostila JavaScript Progressivo</title>
   <script type="text/javascript" src="script.js"></script>
 </head>
 <body>
  <button onclick="entrar()">Entrar</button><br />
 </body>
</html>

script.js:

function entrar(){
  var senha = '';

  do{
   senha = prompt("Digite sua senha: ");

   if(senha=='2112js')
    alert("Entrando no sistema...");
   else
    alert("Senha invalida, tente novamente!");
  }while(senha !='2112js');
}

Resultado:



Funciona assim: ao clicar no botão Entrar, invocamos a função entrar() do JavaScript.

A senha digitada vai ser armazenada na variável senha.
Aí vamos pro do.

Lá nele, usando um prompt, pedimos a senha pro usuário.
Se ela for 2112js, aparece a mensagem de entrada no sistema.

Se não for, de senha inválida.

Isso vai acontecer indefinidamente, até o usuário digitar a senha corretamente, pois o teste condicional é: senha != '2112js'

Em outras palavras, isso quer dizer: 'usuário, enquanto a senha digitada não for a correta, vou ficar pedindo e testando, pedindo e testando...só paro quando digitar a senha correta.'

Leia em inglês: do ... while
Ou seja: faça, execute esse código, enquanto isso for verdade.

Note uma coisa importante: ele executa o código pelo menos uma vez!
Isso não acontece no laço WHILE.

Pro código rodar em WHILE, primeiro o teste tem que ser verdadeiro, senão nem entra.

Nenhum comentário:

Postar um comentário