Урок 11. Дострокове переривання ітерацій

Часто перед php програмістом постає завдання достроково перервати поточну ітерацію. Це може бути потрібно для того, щоб вийти з циклу, або щоб пропустити ітерацію. У таких випадках у мові php використовуються команди continue і break.

Команда break застосовується для переривання виконання конструкції, в якій вона розміщена. Використовується не тільки в циклах, а й в умовній конструкції switch(). Як тільки інтерпретатор всередині циклу зустрічає конструкцію break, виконання циклу зупиняється і негайно відбувається вихід.

Загальний синтаксис конструкції break :

break n

Де n – кількість конструкцій, з яких потрібно вийти. Якщо застосовуються вкладені цикли, то вказують команду break 2 і відбувається вихід одразу з 2 циклів. За замовчуванням n = 1, тому для переривання одного циклу немає потреби писати break 1, потрібно записати просто break. В уроці по конструкції switch() ми вже розглядали приклад використання команди break. Тепер давайте розглянемо роботу break у циклі while.

У прикладі нижче реалізоване завдання вгадування секретного числа. Є секретне число, значенням якого є число від 0 до 10. У циклі потрібно перебрати числа, порівняти їх з секретним числом. Якщо є збіг, то слід вийти з циклу і повідомити про знайдене число.

<?php
//Задаєм секретне число
$number=5;
//Номер першої ітерації (повторення)
$i=0;
//Наш цикл
while($i<=10){
if($i=$number){
$rezultat=“Наше секретне число - $i”;
break;
}
else{
$rezultat= “Число не було знайдене”;
}
//Важливо не забувати про прирощення
$i++;
}
echo $rezultat;
?>

У результаті роботи цього php скрипта ми побачимо на екрані:

«Наше секретне число – 5»

Якщо в цьому прикладі забрати команду break, то секретне число все одно буде знайдене. Але робота циклу while на цьому не перерветься і в наступній ітерації значення $rezultat буде затерто значенням «Число не було знайдене».

Якщо є необхідність завершення поточної ітерації (при цьому вихід з усього циклу не потрібен), а потім потрібно перейти до наступної, то слід використовувати команду continue.

Синтаксис запису continue:

continue n

Команда continue використовується для того, щоб пропустити всі наступні в тілі циклу оператори та початку нової ітерації. Значення n вказує на кількість ітерацій, які потрібно пропустити. За замовчуванням n = 1.

Тепер давайте на практиці розглянемо приклад використання команди continue. Наприклад, нам потрібно вивести в браузері парні числа від 1 до 100, а також вивести їх загальну кількість. Приклад вирішення даної задачі:

<?php
for ($i=1,$count=0; $i<=100; $i++){
if ($i%2){
continue;
}
echo $i.“<br />”;
$count++;
}
echo $count;
?>

У умові циклу даного скрипта перебираються всі цілі числа від 1 до 100. Потім перевіряється – чи можна поділити без залишку поточне число на два. Якщо не можна, то число – непарне і вираз $i%2 поверне одиницю, що значить true, а якщо можна, то число – парне. Зверніть увагу, оператор % знаходить залишок від ділення лівої частини виразу (у нашому випадку $i) на праву частину (2).

Команда continue застосовується, якщо число непарне, при цьому інші вирази пропускаються і починається нова ітерація. Якщо число – парне, воно виведеться на екран і спрацює інкремент для $count. В результаті до кінця виконання всіх ітерацій в змінній $count накопичиться загальна кількість всіх парних чисел в заданому діапазоні.