Utilisation de return dans une boucle en PHP

Le fait que return soit situé à l'intérieur d'une boucle n'est pas toujours une erreur.

L'exemple suivant présente une fonction qui détermine combien de premiers éléments d'un tableau doivent être additionnés pour que la somme devienne supérieure ou égale à 10 :

php<?php
  function func($arr) {
    $length = count($arr);
    $sum = 0;
    
    for ($i = 0; $i < $length; $i++) {
      $sum += $arr[$i];
      
      // Si la somme est supérieure ou égale à 10 :
      if ($sum >= 10) {
        return $i + 1; // on sort de la boucle et de la fonction
      }
    }
  }
  
  $res = func([1, 2, 3, 4, 5]);
  echo $res;
?>

L'exemple suivant présente une fonction qui calcule combien d'entiers, en commençant par 1, doivent être additionnés pour que le résultat soit supérieur à 100 :

php<?php
  function func() {
    $sum = 0;
    $i = 1;
    
    while (true) { // boucle infinie
      $sum += $i;
      
      if ($sum >= 100) {
        return $i; // la boucle tourne jusqu'à sortir ici
      }
      
      $i++;
    }
  }
  
  echo func();
?>
Задание 1

Écrivez une fonction qui prendra un nombre en paramètre et le divisera par 2 autant de fois que nécessaire jusqu'à ce que le résultat devienne inférieur à 10. La fonction doit retourner le nombre d'itérations qui ont été nécessaires pour atteindre le résultat.