Объектно-ориентированный язык сценариев php, страница 6

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

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

Цикл for

Цикл for является циклом, управляемым счетчиком. Рассмотрим и разберем небольшой пример. 

Пример 3.4 Цикл for

<?php

for ($x = 1; $x <= 10; $x = $x +1)

{

                       print "$x";

            }

?>

В первой строчке программы сразу за ключевым словом for следуют фигурные скобки. В этих скобках содержатся три выражения, разделенные точкой с запятой. В первом выражении счетчику цикла присваивается некоторое начальное значение, во втором – проверяется условие цикла, а в третьем происходит увеличение или уменьшение счетчика.

В нашем случае в первом выражении мы инициализируем счетчик цикла (создаем переменную $x, и присваиваем ей некоторое начальное значение), во втором пишем тестовое выражение (цикл должен выполняться, пока $x <= 10), в третьем происходит увеличение счетчика на единицу. Далее идет само тело цикла, заключенное в фигурные скобки. Тело цикла будет выполняться, пока значение счетчика не станет равным 11. Результатом работы программы будет вывод:  12345678910.

Когда цикл запускается первый раз, происходит следующее. Счетчик инициализируется единицей, проверяется истинность тестового выражения ($x <= 10). Далее выполняется тело цикла (функция print выводит текущее значение счетчика, оно у нас равно 1). После выполнения тела цикла происходит увеличение счетчика на 1 ($x = $x +1 – третье выражение из первой строчки программы). Теперь значение счетчика равно 2, опять проверяется тестовое выражение (2 <= 10). Выражение истинно, тело цикла выполняется еще раз (так значение счетчика теперь равно 2, функция выводит на экран браузера число 2) и т.д. Тело цикла будет выполняться, пока значение счетчика не станет равным 11. Как только это произойдет, тестовое выражение станет ложным, и цикл закончит свою работу. Программа продолжит свою работу со строчки, следующей сразу за циклом.

Зачем мы увеличиваем счетчик? Это сделано для того, чтобы наш цикл не стал бесконечным. Если мы не будем этого делать, то значение $x всегда будет равно единице, а значит, выражение  $x <= 10 всегда будет истинно, а это, в свою очередь, приведет к бесконечности цикла for. Тело цикла будет выполняться бесконечно.

Структурно наш цикл выглядит так:

for (инициализация; тестовое выражение; увеличение)

{

// тело цикла

}

Цикл while

Основное отличие цикла while от цикла for состоит в том, что цикл while чаще всего применяется, когда количество циклов заранее не известно и он управляется контрольным значением.

Пример 3.5 Цикл while

<?php

$y = 10;

$x = 1;

while($x!=$y)

{

print "$x     ";

print "$y     ";

$y=$y-2;

$x=$x+1;

}

?>

Сначала мы инициализируем (создаем и присваиваем начальное значение) переменные $x и $y. Далее идет сам цикл while. Он работает следующим образом, пока контрольное выражение в круглых  скобках истинно (в нашем случае пока $x не равно $y), тело цикла выполняется. В нашем случае, пока выражение истинно происходит вывод на экран текущего значения переменных, увеличение значения $x на 1 ($x =$x + 1) и уменьшение значения $y на 2 ($y=$y-2).

Результатом работы программы будет вывод:  1 10 2 8 3 6. Как только значения $x и $y становятся равными (это произойдет, когда обе переменные будут равны 4), цикл прекращает свою работу.

Цикл while по своей структуре весьма напоминает условную конструкцию if.

while(контрольное выражение)

{

// тело цикла

}

Задание для самопроверки