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.