Циклы for и while
Повторяйте код с помощью циклов for, while и do-while.
«Циклы for и while» — бесплатный урок PHP Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Зачем нужны циклы
Циклы позволяют повторять блок кода без его копирования. В PHP есть четыре конструкции циклов:
for— известное количество итерацийwhile— управляется условиемdo-while— выполняется хотя бы один разforeach— перебирает массивы и объекты (в следующем уроке)
Цикл for
Цикл for состоит из трёх частей: инициализации, условия и приращения:
<?php
for ($i = 0; $i < 5; $i++) {
echo $i . ' ';
}
// Output: 0 1 2 3 4Обратный отсчёт в цикле for
Можно вести отсчёт в обратном направлении или изменять значение на любой шаг:
<?php
// Count down
for ($i = 10; $i >= 1; $i--) {
echo $i . ' ';
}
// Step by 2
for ($i = 0; $i <= 10; $i += 2) {
echo $i . ' '; // 0 2 4 6 8 10
}Цикл while
Цикл while выполняется, пока его условие истинно; условие проверяется перед каждой итерацией:
<?php
$n = 1;
while ($n <= 5) {
echo $n . ' ';
$n++;
}
// Output: 1 2 3 4 5Цикл do-while
Цикл do-while всегда выполняет тело хотя бы один раз; условие проверяется после него:
<?php
$attempt = 0;
do {
echo 'Trying... attempt ' . ($attempt + 1) . PHP_EOL;
$attempt++;
} while ($attempt < 3 && !connectToServer());
function connectToServer(): bool { return false; }Бесконечный цикл и break
Бесконечный цикл выполняется постоянно, пока Вы не выйдете из него с помощью break:
<?php
$count = 0;
while (true) {
$count++;
if ($count >= 5) {
break; // exit loop
}
}
echo $count; // 5continue — пропуск итерации
continue пропускает остаток текущей итерации и переходит к следующей:
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i % 2 === 0) {
continue; // skip even numbers
}
echo $i . ' '; // 1 3 5 7 9
}Вложенные циклы
Циклы можно вкладывать друг в друга — это удобно для двумерных данных, например сеток или таблиц:
<?php
for ($row = 1; $row <= 3; $row++) {
for ($col = 1; $col <= 3; $col++) {
echo "($row,$col) ";
}
echo PHP_EOL;
}
// (1,1) (1,2) (1,3)
// (2,1) (2,2) (2,3)
// (3,1) (3,2) (3,3)Выход из вложенных циклов
Используйте break 2 (или любое другое число), чтобы сразу выйти из нескольких уровней циклов:
<?php
for ($i = 0; $i < 5; $i++) {
for ($j = 0; $j < 5; $j++) {
if ($i === 2 && $j === 2) {
break 2; // exits both loops
}
echo "$i,$j ";
}
}Советы по производительности циклов
Избегайте ресурсоёмких операций в условиях циклов:
<?php
// Bad: count() called on every iteration
for ($i = 0; $i < count($arr); $i++) { /* ... */ }
// Good: calculate once
$len = count($arr);
for ($i = 0; $i < $len; $i++) { /* ... */ }
// Also fine: foreach avoids this entirely
foreach ($arr as $item) { /* ... */ }Альтернативный синтаксис циклов
Как и if, циклы поддерживают альтернативный синтаксис с двоеточием для встраивания в HTML:
<?php $items = ['apple', 'banana', 'cherry']; ?>
<ul>
<?php for ($i = 0; $i < count($items); $i++): ?>
<li><?= htmlspecialchars($items[$i]) ?></li>
<?php endfor; ?>
</ul>Быстрая проверка
Какой цикл гарантированно выполнит своё тело хотя бы один раз?
Повторение: циклы for и while
Кратко о циклах:
for— лучше всего подходит, когда количество итераций известноwhile— условие проверяется перед каждой итерациейdo-while— тело выполняется хотя бы один разbreakзавершает цикл;break Nзавершает N уровней вложенностиcontinueпереходит к следующей итерации
Далее: foreach для перебора массивов.
Часто задаваемые вопросы
Урок «Циклы for и while» бесплатный?
Да — полный текст урока «Циклы for и while» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Циклы for и while»?
Повторяйте код с помощью циклов for, while и do-while. Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Циклы for и while»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.