do..while

Loops do..while são bem similares aos 'loops' while, exceto pelo fato de que expressões-verdade são verificadas no fim de cada iteração em vez de no começo. A diferença principal dos 'loops' while regulares é que a primeira iteração de um 'loop' do..while é garantidamente rodada (a expressão-verdade só é verificada no fim da iteração), enquanto que ele pode não rodar necessariamente em um 'loop' while regular (a expressão-verdade é verificada no começo de cada iteração, se ela é avaliada como FALSE logo no começo, a execução do 'loop' terminaria imediatamente).

Há apenas uma sintaxe para 'loops' do..while:


$i = 0;
do {
   print $i;
} while ($i>0);
     

O 'loop' acima rodaria exatamente uma vez, desde que depois da primeira iteração, quando a expressão-verdade é verificada, ela é avaliada como FALSE ($i não é maior que zero 0) e a execução do 'loop' termina.

Usuários avançados de C podem estar familiarizados com o uso diferenciado do 'loop' do..while, para permitir o fim da execução no meio dos blocos de código, englobando-os com do..while(0), e usando o comando break statement. O fragmento de código a seguir demonstra isso:


do {
    if ($i < 5) {
        print "i não é grande o suficiente";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    print "i está correto";

     ...process i...

} while(0);
     

Não se preocupe se você não entendeu isto da forma certa ou de jeito nenhum. Você pode codificar scripts e mesmo poderosos scripts sem usar essa `opção'.