Laço DO WHILE em PHP

Neste tutorial de nosso curso de PHP, vamos aprender como usar este tal de looping DO WHILE.

Baixar apostila COMPLETA de PHP

Laço DO WHILE: O que é? Para que Serve ?

Quando estudamos o looping WHILE, deixamos uma coisa bem clara:
O código só era executado se o teste condicional dentro do WHILE fosse verdade.

Ou seja, primeiro o teste, só depois o código.
Se o teste for FALSE de cara, o interpretador PHP vai passar batido pelo laço WHILE e seu código, vai ver que a condição é falsa, não executa nada e é como se ele não tivesse existido.

Muitas vezes, queremos que o código rode, pelo menos uma vez, e é aí que entra o DO WHILE.
O Laço do while é bem semelhantes ao laço while, porém ele é pós condicionado ao invés de ser pré.

Se você precisar que a condição seja verificada de início, use WHILE.
Se você precisar que o teste condicional seja feito só ao final de cada looping, use DO WHILE.

Vamos entender melhor o que isso tudo significa.

Looping DO WHILE: Como usar ?

A sintaxe para usar, corretamente, o laço DO WHILE é:
<?php 
 do{
  codigo;
  codigo;
 }while(teste_condicional);
?>
Ou seja, primeiro o looping, só ao termino do código é que é feito o teste condicional.

Relembre o inglês. WHILE significa enquanto.
Enquanto a condição for verdadeira, executa. Ou seja, no looping while, só executa se o teste for verdadeiro.

Do significa faça.
Do while, faça...enquanto.

Note que tem um faça, primeiro. É porque a primeira iteração (primeira rodada do código) SEMPRE OCORRE, independente da condição.

São duas as diferenças do WHILE pro DO WHILE.

  1. A primeira iteração do código sempre ocorre.
  2. O WHILE é um laço pré-condicionado, primeiro a condição. DO WHILE é pós-condicionado, primeiro o código e só depois a condição.

Exemplo de Código DO WHILE

O script simples abaixo mostra como a primeira iteração do laço é sempre executada.
Ela exibe uma mensagem na tela, mesmo a condição sendo falsa (0):

<?php 
 do{
  echo "Condição falsa";
 }while(0);
?>

Note como ela executou apenas uma vez.

Exemplo de DO WHILE: Contante de 1 até 100

Veja agora como fica a contagem de 1 até 100 em PHP, usando laço DO WHILE:

<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <?php 
  $count=1;
  do{
   echo "$count <br />";
   $count++;
  }while($count<=100);
 ?>
 </body>
</html>

Exemplo de DO WHILE: Contar até onde o usuário quiser

O script a seguir pergunta um número para o usuário.
Então, via looping DO WHILE, o PHP imprime na tela todos os números de 1 até o valor que o usuário pediu:

<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <form action="" method="get">
  Contar até:  <input type="text" name="count" /><br />
  <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $final = $_GET['count'];
  $contador = 1;
  do{
   echo "$contador <br />";
   $contador++;
  }while($contador<=$final);
 ?>
 </body>
</html>