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
:
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:
É possível usar o
goto
ao invés desse hack.
jayreardon at gmail dot com ¶17 years ago
There is one major difference you should be aware of when using the do--while loop vs. using a simple while loop: And that is when the check condition is made.
In a do--while loop, the test condition evaluation is at the end of the loop. This means that the code inside of the loop will iterate once through before the condition is ever evaluated. This is ideal for tasks that need to execute once before a test is made to continue, such as test that is dependant upon the results of the loop.
Conversely, a plain while loop evaluates the test condition at the begining of the loop before any execution in the loop block is ever made. If for some reason your test condition evaluates to false at the very start of the loop, none of the code inside your loop will be executed.