На восьмом уроке мы погрузимся в одну из самых важных тем программирования, это циклы. Если вы мечтаете автоматизировать рутинные задачи, обрабатывать массивы данных или создавать сложные алгоритмы, без циклов не обойтись. В этом уроке я подробно расскажу о циклах for, while и do-while, приведу множество примеров и задач для закрепления материала.
Что такое циклы?
Представьте, что вам нужно вывести числа от 1 до 100. Писать 100 строк кода с echoне самое разумное решение. Здесь на помощь приходят циклы. Это конструкции, которые позволяют повторять выполнение кода многократно, пока выполняется заданное условие. В PHP есть три основных типа циклов:
forwhiledo-while
Каждый из них имеет свои особенности. Разберемся по порядку.
Цикл for
Цикл for идеален, когда вы заранее знаете, сколько раз нужно выполнить код. Например, для перебора массива фиксированной длины или генерации последовательности чисел.
Синтаксис цикла for
for (инициализация; условие; изменение) { // Тело цикла }
- Инициализация: задаем начальное значение переменной-счетчика.
- Условие: проверка перед каждой итерацией. Если
true, цикл выполняется. - Изменение: обновление счетчика после каждой итерации (например, инкремент).
Пример: Вывод чисел от 1 до 5
for ($i = 1; $i <= 5; $i++) { echo $i . "<br>"; }
Результат:
1 2 3 4 5
Разберем по шагам:
$i = 1инициализация счетчика.- Проверка
$i <= 5. Еслиtrue, выполняется тело цикла. - После каждой итерации
$iувеличивается на 1 ($i++).
Пример: Сумма чисел от 1 до 10
$sum = 0; for ($i = 1; $i <= 10; $i++) { $sum += $i; } echo "Сумма: " . $sum; // Сумма: 55
Цикл while
Цикл while используется, когда количество итераций заранее неизвестно. Например, обработка данных из файла до тех пор, пока не достигнут конец файла.
Синтаксис цикла while
while (условие) { // Тело цикла }
Цикл выполняется, пока условие истинно. Важно: если условие изначально false, тело цикла не выполнится ни разу.
Пример: Вывод чисел от 1 до 5 через while
$i = 1; while ($i <= 5) { echo $i . "<br>"; $i++; }
Результат: аналогичен примеру с for.
Пример: Обработка пользовательского ввода
Допустим, мы складываем числа, которые вводит пользователь, пока он не введет 0:
$total = 0; $number = (int) readline("Введите число (0 для выхода): "); while ($number != 0) { $total += $number; $number = (int) readline("Введите число (0 для выхода): "); } echo "Сумма: " . $total;
Цикл do-while
Этот цикл похож на while, но с одним ключевым отличием: тело цикла выполнится хотя бы один раз, даже если условие ложно изначально.
Синтаксис do-while
do { // Тело цикла } while (условие);
Пример: Проверка пароля
Допустим, пользователь должен ввести пароль и мы проверяем его, пока он не будет корректным:
do { $password = readline("Придумайте пароль (минимум 8 символов): "); } while (strlen($password) < 8); echo "Пароль принят!";
Даже если пользователь сразу введет пароль из 8 символов, цикл выполнится один раз.
Сравнение циклов
for, когда известно количество итераций.while, когда условие проверяется перед выполнением.do-while, когда условие проверяется после выполнения.
Типичные ошибки с циклами
- Бесконечный цикл:
while (true) { // Вечная работа... }
Всегда проверяйте, чтобы условие цикла могло стать
false. - Неправильное изменение счетчика:
for ($i = 0; $i < 5; $i--) { // $i уменьшается → условие никогда не станет false! }
- Использование
do-whileвместоwhile:
Например, если нужно сначала проверить условие, а потом выполнить код.
Практические задачи
Закрепим материал на реальных примерах. Постарайтесь решить их самостоятельно, прежде чем смотреть решения.
Задача 1: Таблица умножения
Напишите скрипт, который выводит таблицу умножения на 5 (от 1 до 10) через цикл for.
Решение:
echo "<h3>Таблица умножения на 5</h3>"; for ($i = 1; $i <= 10; $i++) { echo "5 × $i = " . (5 * $i) . "<br>"; }
Задача 2: Поиск четных чисел
Используя цикл while, выведите все четные числа от 2 до 20.
Решение:
$i = 2; while ($i <= 20) { echo $i . " "; $i += 2; }
Задача 3: Факториал числа
Вычислите факториал числа 7 (7! = 7×6×5×…×1) через цикл for.
Решение:
$factorial = 1; for ($i = 7; $i >= 1; $i--) { $factorial *= $i; } echo "7! = " . $factorial; // 5040
Задача 4: Обратный отсчет
Напишите скрипт, который выводит обратный отсчет от 10 до 1 с помощью do-while, а затем выводит «Пуск!».
Решение:
$count = 10; do { echo $count . "<br>"; $count--; } while ($count >= 1); echo "Пуск!";
Задача 5: Сумма цифр числа
Напишите код, который считает сумму цифр числа 8921 через цикл while.
Подсказка:
- Используйте деление на 10 и остаток от деления.
Решение:
$number = 8921; $sum = 0; while ($number > 0) { $digit = $number % 10; // Получаем последнюю цифру $sum += $digit; $number = (int)($number / 10); // Убираем последнюю цифру } echo "Сумма цифр: " . $sum; // 8+9+2+1 = 20
Итоги 8-го урока
- Цикл
forиспользуем, когда известно количество итераций. whileиспользуем, когда условие должно проверяться до выполнения кода.do-whileиспользуем, когда код нужно выполнить хотя бы один раз.
Потренируйтесь решать задачи с условиями и счетчиками. Циклы это основа программирования и без них невозможно написать даже простой скрипт.
Полный курс с уроками по PHP для начинающих тут — https://max-gabov.ru/php-dlya-nachinaushih
Поддержка автора осуществляется с помощью специальной формы ниже, предоставленной сервисом «ЮMoney». Все платёжные операции выполняются на защищённой странице сервиса, что обеспечивает их корректность и полную безопасность.


