Інструкцыя continue у JavaScript
Існуе таксама інструкцыя continue,
якая запускае новую ітэрацыю цыклу. Даная
інструкцыя часам можа быць карыснай для
спрашчэння кода, хоць практычна заўсёды задачу
можна вырашыць і без яе. Давайце паглядзім
на практычным прыкладзе.
Няхай у нас дадзены масіў з лікамі. Давайце
перабярэм яго цыклом і лікі, якія дзеляцца
на 2, возьмем у квадрат і выведзем
у кансоль, а лікі, якія дзеляцца на 3,
возьмем у куб і выведзем у кансоль. Вось рашэнне
апісанай задачы:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
console.log(result);
} else if (elem % 3 === 0) {
result = elem * elem * elem;
console.log(result);
}
}
Як вы бачыце, радок console.log(result)
паўтараецца два разы. Давайце вынясем яе
за if, вось так:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
} else if (elem % 3 === 0) {
result = elem * elem * elem;
}
console.log(result); // вынеслі вывод за ўмоваў
}
Цяпер наш скрыпт, аднак, працуе крыху
не так: атрымаецца, што і для звычайных элементаў,
не апрацаваных праз наш if будзе
выконвацца вывод зменнай result
у кансоль, што па ўмове нашай задачы нам
не трэба.
Папраўім праблему, дадаўшы да нашага if
яшчэ ўмову else, якая будзе спрацоўваць
для элементаў, якія не дзеляцца на 2 і
3, і выклічым там інструкцыю continue,
якая адразу ж будзе перакідваць нас
на новую ітэрацыю цыклу:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 == 0) {
result = elem * elem;
} else if (elem % 3 == 0) {
result = elem * elem * elem;
} else {
continue; // перайдзем на новую ітэрацыю цыклу
}
console.log(result); // выканаецца, калі дзеліцца на 2 або 3
}
Напішыце цыкл, які выведе толькі
цотныя лікі ад 1 да 100,
прапускаючы няцотныя з дапамогай continue.