Урок 15. PHP — Цикл Do while

На самом деле, как вы могли уже догадаться, цикл do while представляет собой слегка модифицированную версию цикла while, которую мы уже рассмотрели в прошлых уроках. Если вы вспомните, как работает обычный while, то вам будет проще понять новый цикл. Давайте повторим: тело цикла while выполняется, если условие верно и не выполняется, если не верно, но может и не выполниться ни разу, если условие будет с самого начала ложно. Как же работает do while?

Итак, новый цикл do выполняет свой ​​блок кода, по крайней мере, один раз. Это потому, что здесь условный оператор находится после тела цикла! Таким образом, простой цикл while называют «циклом с предусловием», а цикл do while — «циклом с постусловием».

Пример сравнения синтаксиса двух циклов

Простой пример, который иллюстрирует разницу между этими двумя типами циклов и работы их условных операторов.
Работа цикла while:

$cookies = 0;
while($cookies > 1){
	echo "Мммм! Люблю печеньки! *ом-ном-ном*";
} 

В результате мы не увидим ничего, так как переменная $cookies равна нулю и условие $cookies > 1 не сработает, следовательно цикл не выполнится. Теперь давайте сделаем то же самое, но с циклом do while:

$cookies = 0;
do {
	echo "Мммм! Люблю печеньки! *ом-ном-ном*";
} while ($cookies > 1);

В результате:

Мммм! Люблю печеньки! *ом-ном-ном*

Как видите, цикл сработал один раз, а потом проверил условие, которое не выполнилось и вышел из цикла. Такие конструкции обязательно вам когда-нибудь пригодятся! Лучше помнить о них, чтобы не изобретать потом велосипед.

Цикл Foreach | Содержание | POST & GET

Комментарии:

  1. Stas — 24.08.2013 01:17

    Люблю php, темболее когда его разьясняет такой автор как ты): *Ом-ном-ном* Легко жевать!)

  2. Михаил — 14.11.2013 13:48

    А разве выводом будет одна строка?
    $cookies = 0;
    do {
    echo «Мммм! Люблю печеньки! *ом-ном-ном*»;
    $cookies++;
    } while ($cookies > 1);
    Разве не так?

  3. Тимофей — 26.04.2015 20:27

    Stas, что ту разъяснять то? PHP практически ни чем не отличается от C, C++, C#, JAVA и т.д. Я имею ввиду на уровне уроков, которые на этом сайте. Тут автор просто показывает основные конструкции языка, школьники на Бейсике и Паскале поймут, если им код показать.

  4. кидди — 24.06.2015 14:07

    Михаил, условие не выполнилось и поэтому цикл дальше не бегает

Добавить комментарий