Главная » 2015 » Ноябрь » 21 » Урок 9. Операторы цикла (while, do..while, for) в PHP
21:46
Урок 9. Операторы цикла (while, do..while, for) в PHP

Операторы цикла (while, do..while, for) в PHP

Операторы цикла используются очень часто в любых языках программирования. Почти все задачи используют циклы, поэтому стоит обратить особое внимание на их изучение. В PHP существуют 4 вида циклов:

  • while (префиксная проверка условия);
  • do..while (постперфиксная проверка условия);
  • for;
  • foreach;

Первые три цикла похожи на стандартные циклы из языков программирования (С++, Pascal), а последний (foreach) на Perl. Рассмотрим в отдельности первые три операторов цикла, а последний будет рассмотрен в отдельном уроке. Отметим то, что каждый из циклов допускает вложенные циклы, то есть цикл внутри цикла.

Оператор цикла while

Довольно простой оператор цикла, синтаксис которого очень похож на синтаксис в других языка программирования.

Синтаксис while в PHP:

<?php while (условие) //может быть сложное логическое условие { операторы; } ?>

В условие стоит некое выражение, которое должно быть либо истинным (true), либо ложным (false). В случае истинного значения условия выполняются операторы, которые стоят в фигурных скобках. После чего опять происходит проверка условия на истинность. Если условие ложное, то программа не входит в цикл. В случае одного оператора фигурные скобки можно опустить.

Примечание: условие может состоять из очень многих выражений с использованием алгебры логики &&, ||, ! и т.д.

Стоит обратить внимание на то, что если в условие есть операторы, то они должны как-то изменяться, иначе цикл просто зациклиться.

Приведу простой пример на использование while:

<?php $i=0; while ($i//пока i меньше 5 { echo "i = ".$i."<br/>"; $i++; } ?>

Выше описанный пример выведет следующий результат:

i = 0 i = 1 i = 2 i = 3 i = 4

Обратите внимание, что $i=5 не будет выведено, т.к. i увеличивается в самом конце цикла и поэтому как только он достигнет 5, то условие входа в цикл просто не выполнится.

Оператор break

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

<?php $i=0; while (true) //условие всегда истинно { echo "i =".$i."<br/>"; $i++; if($i>=5) break; } ?>

Результат будет такой же, как и в предыдущем примере.

Оператор continue

Оператор continue; прекращает текущую итерацию цикла, перемещаясь в начало, но не прекращает цикл полностью. Например:

<?php $i=0; while (true) //условие всегда истинно { echo "i =".$i."<br/>"; $i++; if($i>=5) break; else continue; } ?>

Результат этого примера будет таким же, как и у предыдущих примеров.

Как показывает практика, операторы continue; и break; зачастую помогают реализовать сложные циклы.

Приведу ещё пример по использованию цикла while:

<?php $i=0; while ($i++//постпрефиксная форма { echo "i =".$i."<br/>"; } //результаты этих двух while будут разными //из-за постпрефиксной и префиксной формы $i=0; while (++$i//префиксная форма { echo "i =".$i."<br/>"; } ?>

Оператор цикла do...while

Оператор do...while очень похож на обычный while. Единственное их отличие во времени проверки условия. Цикл do...while будет выполнен хотя бы один раз, поскольку проверка происходит в самом конце. Синтаксис do...while:

<?php do { операторы; } while (условие); ?>

Рассмотрим пример:

<?php $i=0; do { echo "i =".$i."<br/>"; $i++; } while($i

Его результат аналогичен первым рассмотренным примерам.

Стоит отметить, что операторы continue; и break; также могут применяться в таких циклах.

Оператор цикла for

Синтаксис оператора for следующий:

<?php for(start; usloviya; shag) { операторы; } ?>

В start происходит начальная инициализация переменных. В usloviya должны стоять одно или несколько условий завершения цикла. В shag заносятся операторы, которые выполняются в конце каждой итерации. Например:

<?php for ($i=0; $i

Результат выполнения этого цикла будет таким же как и у предыдущих примеров.

Большим плюсом использования for, что тело цикла может отсутствовать, а все необходимые операции выполнены в разделе shag. Для наглядности приведем пример:

<?php for ($i=0; $i<5; print "i =".$i."<br/>", $i++); ?>

Замечание: в shag недопустимо использование функции echo.

Шаг цикла и условия могут быть самыми разнообразными. Например, можно написать не i++, а i+=5 (инкремент на 5).

Каждый из разделов цикла for может быть опущен, в таком случае получается бесконечный цикл:

<?php for (;;) { операторы; } for (;uslovie;) { операторы; } for (;;shag) { операторы; } ?>

for допускает использование continue; и break;.

На последок приведем пример двух эквивалентных конструкций цикла, но один будет for, а другой while

<?php for (конструкция 1; конструкция 2; конструкция 3) { операторы; } ?>

Эквивалентна следующей:

<?php конструкция 1; while (конструкция 2) { операторы; конструкция 3; } ?>

Следующий урок в разработке...

Категория: Все о сайтах | Просмотров: 330 |
Всего комментариев: 0
avatar