Цикл for
, являющийся последней разновидностью инструкций цикла, к тому же еще и самый мощный из них, поскольку в нем сочетаются возможности установки значения переменных при входе в цикл, проверки соблюдения условия при каждом проходе цикла (итерации) и модификации значений переменных после каждой итерации.
В примере продемонстрирована возможность вывода таблицы умножения с использованием цикла for
.
Пример. Вывод таблицы умножения на 12 из цикла for
<?php
for ($count = 1 ; $count <= 12 : ++$count)
echo "Число $count, умноженное на 12. равно " . $count * 12 . "<br />";
?>
Как видите, весь код сведен к одной инструкции for
, в которой содержится одна условная инструкция. И вот что из этого получается. Каждая инструкция for
воспринимает три параметра:
Эти три выражения отделяются друг от друга точкой с запятой: for (выражение1 ; выражение2 ; выражение3)
. В начале первой итерации выполняется выражение инициализации. В нашем коде таблицы умножения переменная $count
инициализируется значением 1. Затем при каждой итерации проверяется выражение условия (в данном случае $count <= 12
), и выход из цикла осуществляется только в том случае, если результат вычисления условия будет TRUE
. И наконец, в завершение каждой итерации выполняется выражение модификации. В случае с таблицей умножения значение переменной $count
увеличивается на 1.
Эта структура в явном виде исключает любые требования по размещению управляющих элементов цикла в его собственном теле, освобождая его для инструкций, требующих циклического выполнения.
Если в теле цикла for
содержится более одной инструкции, не забудьте воспользоваться фигурными скобками (см. пример).
Пример. Цикл for
из предыдущего примера с добавлением фигурных скобок
<?php
for ($count = 1 ; $count <= 12 ; ++$count)
{
echo "Число $count, умноженное на 12, равно " . $count * 12;
echo "<br />";
}
?>
Давайте сравним условия, при которых следует использовать циклы for
c условиями, при которых следует использовать циклы while
. Цикл for
явно создается под отдельное значение, изменяющееся на постоянную величину. Обычно мы имеем дело с увеличивающимся значением — это похоже на то, что вам был передан перечень того, что выбрал пользователь, и от вас требуется обработать каждый его выбор по очереди. Но переменную можно видоизменять по вашему усмотрению. Более сложная форма инструкции for
позволяет даже осуществлять со всеми тремя параметрами сразу несколько операций:
for ($i = 1, $j = 1 ; $i + $j < 10 ; $i++ , $j++)
{
// ...
}
Но новичкам использовать такую сложную форму не рекомендуется. Тут главное — отличать запятые от точки с запятой. Все три параметра должны быть отделены друг от друга точкой с запятой.
Несколько операторов внутри каждого параметра должны быть отделены друг от друга запятыми. Первый и третий параметры в предыдущем примере содержат по два оператора:
$i = 1, $j = 1 // Инициализация переменных $i и $j $i + $j < 1 // Условие окончания работы цикла
$i++ , $j++ // Модификация $i и $j в конце каждой итерации
Главное, что следует уяснить из этого примера, — то, что три секции параметров должны разделяться точкой с запятой, а не запятыми (которые должны использоваться только для разделения операторов внутри каждой секции параметров).
Тогда при каких условиях следует отдавать предпочтение инструкциям while
перед инструкциями for
? Когда ваше условие не зависит от простого изменения переменной на постоянной основе. Например, инструкция while
используется в том случае, если нужно проверить, не введено ли какое-то вполне определенное значение или не возникла ли какая-то конкретная ошибка, и завершить цикл сразу же, как только это произойдет.
Циклы do...while | Прекращение работы цикла |