Gebruik van return in een lus in PHP

Dat return zich binnen een lus bevindt, is niet altijd een fout.

In het volgende voorbeeld is een functie gemaakt die bepaalt hoeveel van de eerste elementen van een array opgeteld moeten worden zodat de som groter dan of gelijk aan 10 wordt:

php<?php
  function func($arr) {
    $length = count($arr);
    $sum = 0;
    
    for ($i = 0; $i < $length; $i++) {
      $sum += $arr[$i];
      
      // Als de som groter dan of gelijk is aan 10:
      if ($sum >= 10) {
        return $i + 1; // verlaten we de lus en de functie
      }
    }
  }
  
  $res = func([1, 2, 3, 4, 5]);
  echo $res;
?>

In het volgende voorbeeld is een functie gemaakt die berekent hoeveel gehele getallen, te beginnen vanaf 1, opgeteld moeten worden zodat het resultaat groter dan 100 is:

php<?php
  function func() {
    $sum = 0;
    $i = 1;
    
    while (true) { // oneindige lus
      $sum += $i;
      
      if ($sum >= 100) {
        return $i; // de lus draait totdat hij hier uitbreekt
      }
      
      $i++;
    }
  }
  
  echo func();
?>
Задание 1

Schrijf een functie die een getal als parameter accepteert en het deelt door 2 zoveel keer, totdat het resultaat kleiner wordt dan 10. Laat de functie het aantal iteraties teruggeven dat nodig was om het resultaat te bereiken.