Цикл 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, затем выводит конечное значение.
Задание
ЛегкоПрочитайте одно целое число из ввода, представляющее целевую сумму.
Используйте цикл 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;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators