JavaScriptにおけるループ内returnの使用
returnがループ内にあることが、常にエラーであるとは限りません。次の例では、配列の最初の要素から何個足せば合計が10以上になるかを判定する関数を作成しています:
function func(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
// 合計が10以上の場合は:
if (sum >= 10) {
return i + 1; // ループと関数から抜け出す
}
}
}
let res = func([1, 2, 3, 4, 5]);
console.log(res);
次の例では、1から始まる整数を何個足せば結果が100を超えるかを計算する関数を作成しています:
function func() {
let sum = 0;
let i = 1;
while (true) { // 無限ループ
sum += i;
if (sum >= 100) {
return i; // ここで抜けるまでループが回る
}
i++;
}
}
console.log( func() );
数値をパラメータとして受け取り、結果が10未満になるまで、その数値を2で割り続ける関数を作成してください。関数は、結果に達するまでに必要だった反復回数を返すものとします。