Применение return в циклах в JavaScript
То, что 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() );
Напишите функцию, которая параметром будет
принимать число и делить его на 2
столько раз, пока результат не станет меньше
10
. Пусть функция возвращает количество
итераций, которое потребовалось для достижения
результата.