for (початкове значення; кінцеве значення; зміна лічильника)
Оператор
Приклад 1
Піднесемо до степеня 3 число 2 за допомогою циклу:
$sum = 1;
for ($i=1; $i<=3; $i=$i+1)
$sum = $sum * 2;
print($i);
В цьому прикладі запускається цикл з початковим значення змінної $i, що рівне 1. Цикл буде виконуватися, поки значення змінної менше або рівне 3. Щойно значення змінної перевищить це число, цикл припиниться і результат буде виведено на екран за допомогою функції print(), яка йде після циклу. На кожному кроці циклу значення змінної збільшується на одиницю $i($i=$i+1).
На кожному кроці циклу виконується код: $sum = $sum * 2. Оскільки наш цикл виконується від 1 до 3, то рядок буде виконуватися 3 рази.
Після оператора for виконується тільки один рядок коду. Якщо необхідно виконати два і більше оператора, потрібно помітити їх у фігурні дужки. Наприклад:
$sum = 1;
for ($i=1; $i<=3; $i=$i+1)
{
$sum = $sum * 2;
print("Сума = $sum, Лічильник = $i <br>");
}
Після виконання цього коду ми побачимо на екрані наступний текст:
Сума = 2, Лічильник = 1
Сума = 4, Лічильник = 2
Сума = 8, Лічильник = 3
Таким чином ми піднесли число 2 у третю степінь. У якості початкових значень можуть виступати декілька змінних. Наприклад, тут ми можемо перенести оголошену змінну$sum в дужки оператора for наступним чином:
for ($sum = 1, $i=1; $i<=3; $i=$i+1)
{
$sum = $sum * 2;
print("Сума = $sum, Лічильник = $i <br>");
}
Всі початкові значення перераховуються через кому. Аналогічним чином можна реалізувати будь-яку кількість перевірок. Наприклад, нам потрібно виконувати цикл, поки значення змінної $i не буде більше за 3 або сума менша 10. Для цього можна написати цикл у такому вигляді:
for ($sum=1, $i=1; $i<=3, $sum<10; $i=$i+1)
{
$sum = $sum * 2;
print("Сума = $sum, Лічильник = $i <br>");
}
В обмеженні циклу через кому перевіряються дві умови $i=1 і $i<=3. Кома рівносильна порівнянню «або» (or) і відповідає запису:
for ($sum=1, $i=1; $i<=3 or $sum<10; $i=$i+1)Якщо необхідно виконувати цикл до тих пір, поки одна з умов виконається, то можна написати так:
for ($sum=1, $i=1; $i<=3 and $sum<10; $i=$i+1)Але в цьому випадку є один недолік. Якщо виконати цей код, то можна побачити, що сума перевищить 10. Чому? Перевірка відбувається раніше, ніж відбувається чергове піднесення до степеня. Число 2 в 4-ій степені рівне 16. Це менше за 10, тому виконується наступний крок (ще одне піднесення до степеня), і результат буде 32, що і виводиться на екран. Тільки наступна перевірка побачить, що число перевищує допустиме значення. Щоб позбавитися від цього ефекту, піднесення до степеню потрібно перенести в область збільшення лічильника, тобто так:
for ($sum=1, $i=1; $i<=3, $sum<10; i="$i+1," sum ="">
print("Сума = $sum, Лічильник = $i <br>");
Тепер на кожному кроці циклу збільшується не тільки $i, але і $sum. Результат піднесення до степеня буде виведено на екран тільки в тому випадку, якщо він відповідає обом умовам, і сума ніколи не перевищить 10.
Цикл for може бути нескінченним. Це робиться наступним чином:
for (;;)
{
}
Тут нема жодних умов і лічильників, тому цикл буде виконуватись нескінченну кількість разів.
Увага! Не раджу вам використовувати нескінченні цикли: вони створюють велике навантаження на систему, а їх не коректне застосування може призвести до зависання чи інших непередбачених результатів.
0 коментарі:
Дописати коментар