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.
- A primeira iteração do código sempre ocorre.
- 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>