Применение return в цикле в PHP
То, что return
расположен внутри цикла,
не всегда может быть ошибкой.
В следующем примере сделана функция, которая
определяет, сколько первых элементов массива
нужно сложить, чтобы сумма стала больше или
равна 10
:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Если сумма больше или равна 10:
if ($sum >= 10) {
return $i + 1; // выходим из цикла и из функции
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
А в следующем примере сделана функция, которая
вычисляет, сколько целых чисел, начиная с
1
, нужно сложить, чтобы результат
был больше 100
:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // бесконечный цикл
$sum += $i;
if ($sum >= 100) {
return $i; // цикл крутится пока не выйдет тут
}
$i++;
}
}
echo func();
?>
Напишите функцию, которая параметром будет
принимать число и делить его на 2
столько раз, пока результат не станет меньше
10
. Пусть функция возвращает количество
итераций, которое потребовалось для достижения
результата.