Използване на return в цикъл в PHP

Фактът, че return се намира вътре в цикъл, не винаги е грешка.

В следващия пример е създадена функция, която определя колко от първите елементи на масива трябва да се сумират, за да стане сумата по-голяма или равна на 10:

php<?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<?php
  function func() {
    $sum = 0;
    $i = 1;
    
    while (true) { // безкраен цикъл
      $sum += $i;
      
      if ($sum >= 100) {
        return $i; // цикълът се върти, докато не излезе оттук
      }
      
      $i++;
    }
  }
  
  echo func();
?>
Задание 1

Напишете функция, която ще приема число като параметър и ще го дели на 2 толкова пъти, докато резултатът стане по-малък от 10. Нека функцията връща броя итерации, които са били необходими за постигане на резултата.