Codebra
29 января 2026 в 19:54

Урок 11. Циклы while и do-while в PHP

Цикл while исполняет код, пока выполняется условие в круглых скобках. Если условие возвращает значение true, блок кода выполняется. Затем условие проверяется снова. Цикл будет повторяться до тех пор, пока условие не вернет значение false.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по PHP. Курс был написан в 2024 году одним из первых учеников Codebra и, к моменту написания курса, опытным бэкэнд-разработчиком. К сожалению, курс не был дописан, а его автор молча пропал.

Полный список уроков доступен по тегу Архивный курс по PHP и на странице первого урока.

📝 Кратко

Основы циклов в PHP

  • Циклы начинаются с ключевого слова, указывающего интерпретатору PHP тип цикла.
  • Цикл while работает, пока условие в скобках возвращает true.
  • Важно увеличивать счётчик, чтобы избежать бесконечного выполнения цикла.

Примеры циклов

  • Цикл while используется для вывода чётных чисел.
  • Цикл do-while выполняется минимум один раз и увеличивает значение переменной перед проверкой условия.
  • Перебор индексируемого массива с использованием циклов упрощает манипуляции с элементами массива.

Все циклы начинаются с ключевого слова, указывающего интерпретатору PHP, какой цикл используется. Цикл while начинается с ключевого слова while, а в круглых скобках пишется условие. Пока выражение в условии возвращает true, цикл будет работать.

<?php
	$counter = 0; // Переменная счетчик

	while ($counter < 10) { // Цикл будет выполнятся пока переменная 
	                        // $counter меньше чем 10
		echo $counter; // Выводим на экран значения от 0 до 9
		$counter++; // Увеличиваем счетчик 
	}
?>
💡 Важно

Не забывайте увеличивать счётчик, иначе цикл будет выполняться бесконечно и всё у вас зависнет.

К счетчику не обязательно прибавлять единицу. Давайте для примера выведем только чётные числа:

<?php
	$counter = 2;

	while ($counter < 10) {
		echo $counter; // Выводим на экран значения 2, 4, 6, 8.
		$counter += 2; // Увеличиваем счетчик 
	}
?>

Обратный отсчет

Бывают ситуации, когда нужно запускать цикл в обратном порядке:

<?php
	$counter = 10;

	while ($counter >= 1) {
		echo $counter; // Выводим на экран значения от 10 до 1.
		$counter--; //  Уменьшаем счетчик 
	}
?>

Цикл do-while

Цикл do-while перед проверкой условия запускает набор операторов, заключенных в фигурных скобках. Цикл всегда выполняется как минимум один раз.

<?php
	do {
		// В этом блоке пишем код, который нужно зациклить
		echo $counter;
		$counter++;
	} while ($counter < 10); // Условие
?>

Код в этом цикле выводит значение переменной $counter, а затем, используя оператор ++, значение переменной $counter увеличивается на 1.

Поскольку блок кода выполняется перед условием, то вывод переменной $counter и увеличение ее на 1 произойдет по крайней мере один раз.

Если значение переменной $counter равно 3, то в результате мы получим 3456789. Если значение переменной $counter равно 1, то в результате мы получим 123456789.

Перебор индексируемого массива

В уроке про массивы мы вручную манипулировали его элементами. Проще и быстрее производить различные операции с помощью циклов. Давайте посмотрим как это делать.

<?php
	$arr = [1, 2, 3, 4, 5];
	$length = count($arr); // Узнаем длину массива
	$counter = 0; // Создаем счётчик

	while ($counter < $length) {
		print_r($arr[$counter]); // Выведет 1, 2, 3, 4, 5
		$counter++; //  Увеличиваем счётчик 
	}
?>

Мы создали массив, узнали его длину и создали счётчик, который будет использоваться для обращения к индексам массива. Как вы могли заметить, мы создали слишком много вспомогательных переменных, что не очень удобно. Пока без этого никуда.

Давайте перемножим все значения в массиве $arr:

<?php
	$arr = [1, 2, 3, 4, 5];
	$length = count($arr);
	$counter = 0;
	$result = 1; // Создали переменную для хранения результата.
	
	while ($counter < $length) {
		$result *= $arr[$counter]; // Умножаем все значения.
		$counter++; //  Увеличиваем счётчик 
	}
	
	echo $result; // Распечатает 120
?>

Мы рассмотрели две конструкции цикла while, которые можно использовать всегда и везде. Есть конечно и более удобные циклы, которые часто используются в работе, они более сложные, но гибкие. В следующем уроке мы их рассмотрим.

Задачи

  1. Напишите код, который принимает массив чисел и возвращает сумму всех положительных элементов этого массива.
  2. Напишите скрипт, который выводит массив в обратном порядке.
  3. Напишите код, который считывает массив чисел, находит минимальное и максимальное значения и выводит их.
  4. Напишите код, который считывает список студентов в ассоциативном массиве и выводит их.
  5. Найдите произведение целых чисел от 1 до 20.
  6. Найдите сумму четных чисел от 2 до 100.
  7. Найдите сумму нечетных чисел от 1 до 99.
📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу PHP.