Utilizzo di return nel ciclo in PHP

Il fatto che return sia posizionato all'interno di un ciclo, non è sempre un errore.

Nel seguente esempio è creata una funzione che determina quanti primi elementi dell'array devono essere sommati affinché la somma diventi maggiore o uguale a 10:

php<?php
  function func($arr) {
    $length = count($arr);
    $sum = 0;
    
    for ($i = 0; $i < $length; $i++) {
      $sum += $arr[$i];
      
      // Se la somma è maggiore o uguale a 10:
      if ($sum >= 10) {
        return $i + 1; // usciamo dal ciclo e dalla funzione
      }
    }
  }
  
  $res = func([1, 2, 3, 4, 5]);
  echo $res;
?>

Nel seguente esempio è creata una funzione che calcola quanti numeri interi, a partire da 1, devono essere sommati affinché il risultato sia maggiore di 100:

php<?php
  function func() {
    $sum = 0;
    $i = 1;
    
    while (true) { // ciclo infinito
      $sum += $i;
      
      if ($sum >= 100) {
        return $i; // il ciclo continua finché non esce qui
      }
      
      $i++;
    }
  }
  
  echo func();
?>
Задание 1

Scrivi una funzione che prenderà come parametro un numero e lo dividerà per 2 tante volte, finché il risultato non diventerà minore di 10. La funzione deve restituire il numero di iterazioni richieste per raggiungere il risultato.