do-while
(PHP 4, PHP 5, PHP 7, PHP 8)
Os laços do-while
é muito similar aos laços
while
, com exceção que a expressão de avaliação é
verificada ao final de cada iteração em vez de no começo.
A maior diferença para o laço while
é
que a primeira iteração do laço do-while
sempre é executada (a expressão de avaliação é executada somente no final
da iteração), considerando que no laço while
não é
necessariamente executada (a expressão de avaliação é
executada no começo de cada iteração, se avaliada como
false
logo no começo, a execução do laço
será abortada imediatamente).
Só há uma sintaxe para o laço do-while
:
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
O laço acima será executado somente uma vez, pois após a primeira
iteração, quando a expressão de avaliação for executada, resultará em
false
($i não é maior que 0) e a execução do laço
será encerrada.
Usuário avançados de C devem estar familiarizados com um uso diferente do laço
do-while
, que permite parar a execução no meio
do bloco de códigos, encapsulando-os em um
do-while
(0), e usando o break
. O código a seguir demonstra isso:
<?php
do {
if ($i < 5) {
echo "i is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i is ok";
/* process i */
} while (0);
?>
É possível usar o
goto
ao invés desse hack.