Урок 9. Цикл for

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

Синтаксис цикла for:

for (инициализация; условие; приращение){
//блок команд
}

Цикл for отличается еще и тем, что условие включает не только само условие выполнения цикла, но и, инициализационную часть и приращение. В инициализированной части устанавливаются начальные значения нужных переменных. Данная часть выполняется во время первой итерации. Приращение выполняется при каждом повторении и, как правило, используется для декремента или инкремента значения одной или нескольких переменных.

Пример использования цикла for:

<?php
for ($begin=0, $end=9; $begin<=$end;$begin++){
//Присваиваем номер итерации
$iteration=$begin+1;
echo “$iteration –я итерация<br />”;
}
?>

Как мы видим, этот скрипт – более компактен, чем код с циклом while в предыдущем уроке. Но, как показывает практика, для некоторых людей он кажется более сложным для запоминания и понимания.

Во время первого прохода данной циклической конструкции инициализируются переменные $begin и $end: они получают значения 0 и 9. Потом интерпретатор проверяет истинность условия цикла. Конечно же, 0<9, поэтому блок кода внутри цикла for выполняется, а $begin увеличивается на 1. Потом условие цикла проверяется обратно. В этот раз переменная $begin=1, что меньше 9, поэтому цикл продолжает выполняться. Когда значение $begin=10, условие $begin<=$end оказывается ложным – false и цикл заканчивается.

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

<?php
$begin=0;
$end=9;
for (;$begin<=$end;){
//Определяем номер итерации
$iteration=$begin+1;
echo “$iteration –я итерация<br />”;
$begin++;
}
?>

Данный скрипт практически идентичный коду конструкции while в предыдущем уроке. Цикл for по сравнению с другими циклическими конструкциями считают более наглядным, так как кодер сразу получает всю необходимую информацию о работе цикла.