Menu
Coddy logo textTech

Цикл while

Часть раздела Основы путешествия по PHP на Coddy — урок 48 из 71.

Хотя цикл for отлично работает, когда вы знаете точное количество итераций, цикл while идеален, когда вы хотите продолжать цикл, пока условие не станет ложным.

Цикл while проверяет своё условие перед каждой итерацией. Если условие истинно, выполняется код внутри. Это продолжается, пока условие не станет ложным.

<?php
$count = 1;

while ($count <= 3) {
    echo "Count: $count\n";
    $count++;
}
?>

Это выводит:

Count: 1
Count: 2
Count: 3

Цикл начинается с проверки условия $count <= 3. Поскольку оно истинно, код выполняется и увеличивает $count. Когда $count достигает 4, условие становится ложным и цикл останавливается.

Важно: Всегда убедитесь, что что-то внутри цикла в конечном итоге сделает условие ложным. В противном случае вы создадите бесконечный цикл, который никогда не остановится.

<?php
$total = 0;
$num = 1;

while ($total < 10) {
    $total += $num;
    $num++;
}

echo $total;
?>

Это продолжает добавлять числа, пока общая сумма не достигнет или не превысит 10, затем выводит конечное значение.

challenge icon

Задание

Легко

Прочитайте одно целое число из ввода, представляющее целевую сумму.

Используйте цикл while для сложения последовательных чисел, начиная с 1 (1, 2, 3, 4, ...), пока общая сумма не достигнет или не превысит целевую сумму.

Выведите итоговую сумму на первой строке и последнее добавленное число на второй строке.

Пример 1:

Если ввод 10, вывод должен быть:

10
4

(1 + 2 + 3 + 4 = 10, что достигает цели)

Пример 2:

Если ввод 15, вывод должен быть:

15
5

(1 + 2 + 3 + 4 + 5 = 15)

Пример 3:

Если ввод 7, вывод должен быть:

10
4

(1 + 2 + 3 + 4 = 10, что превышает 7)

Шпаргалка

Цикл while проверяет условие перед каждой итерацией и продолжает выполняться, пока условие не станет ложным.

Базовый синтаксис:

<?php
$count = 1;

while ($count <= 3) {
    echo "Count: $count\n";
    $count++;
}
?>

Цикл проверяет, истинно ли $count <= 3 перед каждой итерацией. Когда условие становится ложным, цикл останавливается.

Важно: Всегда убедитесь, что внутри цикла что-то в конечном итоге делает условие ложным, чтобы избежать бесконечных циклов.

Пример с накоплением:

<?php
$total = 0;
$num = 1;

while ($total < 10) {
    $total += $num;
    $num++;
}

echo $total;
?>

Попробуйте сами

<?php
// Читаем целевую сумму
$target = intval(fgets(STDIN));

// Инициализируем переменные
$total = 0;
$num = 0;

// TODO: Напишите свой код здесь
// Используйте цикл while для сложения последовательных чисел (1, 2, 3, ...)
// пока общая сумма не достигнет или не превысит цель


// Выводим итоговую сумму и последнее добавленное число
echo $total . "\n";
echo $num;
?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы