PHPにおけるループ内でのreturnの使用

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

数値を受け取り、結果が 10 未満になるまで、 その数値を 2 で割り続ける関数を作成してください。 関数は、結果を達成するのに必要な反復回数を返すものとします。