Použitie return v cykle v PHP

To, že return sa nachádza vo vnútri cyklu, nie vždy musí byť chybou.

V nasledujúcom príklade je vytvorená funkcia, ktorá určuje, koľko prvých prvkov poľa je potrebné sčítať, aby sa súčet stal väčším alebo rovným 10:

php<?php
  function func($arr) {
    $length = count($arr);
    $sum = 0;
    
    for ($i = 0; $i < $length; $i++) {
      $sum += $arr[$i];
      
      // Ak je súčet väčší alebo rovný 10:
      if ($sum >= 10) {
        return $i + 1; // ukončíme cyklus a funkciu
      }
    }
  }
  
  $res = func([1, 2, 3, 4, 5]);
  echo $res;
?>

A v nasledujúcom príklade je vytvorená funkcia, ktorá počíta, koľko celých čísel, počnúc od 1, je potrebné sčítať, aby bol výsledok väčší ako 100:

php<?php
  function func() {
    $sum = 0;
    $i = 1;
    
    while (true) { // nekonečný cyklus
      $sum += $i;
      
      if ($sum >= 100) {
        return $i; // cyklus beží, kým neukončí tu
      }
      
      $i++;
    }
  }
  
  echo func();
?>
Задание 1

Napíšte funkciu, ktorá ako parameter bude prijímať číslo a deliť ho 2 tolko krát, kým výsledok nebude menší ako 10. Nech funkcia vráti počet iterácií, ktoré boli potrebné na dosiahnutie výsledku.