Урок 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 в порівнянні з іншими циклічними конструкціями вважають більш наочним, так як кодер відразу отримує всю необхідну інформацію про роботу циклу.