Laço do while em PHP

Laço do while em PHP – Aula 18

O laço do while em PHP funciona de maneira extremamente similar ao laço while, porém, ao invés de avaliar a expressão e executar a ação caso ela seja avaliada como verdadeira, no laço do while a ação é executada e só depois a expressão é avaliada.

Nesse caso, você tem a certeza de que a ação será executada no mínimo uma vez, já que a expressão só será avaliada ao final da interação laço.

Outro ponto diferente do laço while, é que o laço do while é escrito de maneira um pouco diferente, veja:

Vamos ver ambos, while e do while na prática (para uma melhor explicação sobre apenas o laço while, acesse Laço While em PHP – Aula 17).

Do while em PHP

Suponhamos que eu queira contar até 10 utilizando um laço do while em PHP, veja o exemplo:

A expressão acima irá retornar exatamente 12345678910 na tela do navegador do usuário pelo seguinte:

  • Configuramos uma variável inicial com valor 0 ($num = 0);
  • No laço do while, a ação é executada, então, na primeira linha da ação somamos mais um (+1) na variável $num a cada interação do laço com o operador de incremento. Na segunda linha da ação mostramos o valor de $num na tela com o comando echo.
  • Na última linha do laço do while, verificamos a nossa expressão (se $num é menor que 10). O laço será executado enquanto $num for menor que 10. Como estamos incrementando de um em um a variável $num (0 + 1, 1 + 1, 2 + 1…), quando o valor da variável $num chegar em 10, o laço para de ser executado.

Neste caso, tanto o laço while quanto do while retornariam a mesma coisa na tela.

Veja:

Agora vamos avaliar uma expressão onde while e do while retornam valores diferentes:

Perceba que agora a minha expressão (condição) mudou, estou verificando se a variável $num é maior do que um ($num > 1), ou seja, como $num tem o valor zero (0), e zero não é maior que um, o valor retornado por ela será falso (false), consequentemente, a ação do laço não deveria ser executada. Porém, como o laço do while executa primeiro a ação e depois verifica a ação, o interpretador do PHP irá exibir "Ação executada" na tela pelo menos uma vez. Já para o laço while, a ação não será executada, porque a expressão foi analisada antes da ação ser executada.

Break – Pare o laço

Caso você queira parar o laço antes que ele verifique todas as expressões, você pode utilizar a palavra chave break, veja:

No trecho de código acima, era de se esperar que o valor retornado fossem milhares de números (literalmente, de 1 a 1000) na tela, pois, minha expressão será avaliada enquanto $num for menor do que 1000. Porém, no meio do laço existe uma estrutura condicional if que avalia se $num é menor do que 10; se for, a palavra break será executada e o laço para de executar imediatamente.

Aulas anteriores

Veja todas as aulas, e mais, na categoria Curso de PHP do Tutsup.



 

Comentários