do-while

Оновлено: 11.05.2023

Цикли do-while дуже схожі на цикли while, за винятком того, що вираз істинності перевіряється в кінці кожної ітерації, а не на початку. Основна відмінність від звичайних циклів полягає в тому, що перша ітерація циклу do-while виконується гарантовано (істиннісний вираз перевіряється лише в кінці ітерації), тоді як у звичайному циклі while вона не обов'язково виконується (істиннісний вираз перевіряється на початку кожної ітерації, і якщо він з самого початку виявиться хибним, виконання циклу буде негайно завершено).

Існує лише один синтаксис для циклів типу do-while:

<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>

Наведений вище цикл виконається рівно один раз, оскільки після першої ітерації, коли перевіряється вираз істинності, він набуває значення false ($i не більше 0) і виконання циклу завершується.

Досвідчені користувачі C можуть бути знайомі з іншим використанням циклу do-while, що дозволяє зупиняти виконання посеред блоків коду, інкапсулюючи їх за допомогою do-while (0) і використовуючи інструкцію break. Наступний фрагмент коду демонструє це:

<?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);
?>

Замість цього хаку можна використовувати оператор goto.