Уроки модуля (3/4)
перерыв и продолжить
Два очень полезных маленьких слова внутри цикла:
breakнемедленно выходит из самого внутреннего цикла.continueпереходит к следующей итерации, не выполняя остальную часть тела.
break: выйти раньше
Типично для «найти первый, удовлетворяющий условию»:
function primoNegativo(nums) {
for (const n of nums) {
if (n < 0) return n; // o: result = n; break;
}
return undefined;
}
primoNegativo([3, 7, -2, 4, -9]); // -2Пример с явным break:
let trovato = -1;
const nums = [10, 20, 30, 40, 50];
for (let i = 0; i < nums.length; i++) {
if (nums[i] === 30) {
trovato = i;
break;
}
}
trovato; // 2continue: перейти к следующему
Когда элемент неинтересен, но вы хотите продолжать цикл:
function sommaPari(nums) {
let totale = 0;
for (const n of nums) {
if (n % 2 !== 0) continue; // salta i dispari
totale += n;
}
return totale;
}
sommaPari([1, 2, 3, 4, 5, 6]); // 12Во многих случаях if (cond) { ... } будет эквивалентным; continue помогает, когда тело длинное
и вы хотите сохранить поток плоским (небольшое вложение).
Попробуйте это
Определите `firstGreater(nums, порог)`, который возвращает первый элемент nums, строго превышающий пороговое значение, или неопределенный, если его нет. Используйте перерыв (или немедленный возврат).
Показать подсказку
Возврат внутри for работает как перерыв + возврат одновременно.
Решение доступно после 3 попыток
Обзор упражнения
Определите `sumSkippingZeros(nums)`, который суммирует все элементы, кроме точных нулей. Используйте продолжить.
Показать подсказку
Если n === 0, продолжить; в противном случае накапливаются.
Решение доступно после 3 попыток