JavaScript-ի continue հրահանգը
Գոյություն ունի նաև continue հրահանգը,
որը մեկնարկում է ցիկլի նոր իտերացիա: Այս
հրահանգը երբեմն կարող է օգտակար լինել կոդը
պարզեցնելու համար, չնայած գործնականում խնդիրը
mիշտ էլ հնարավոր է լուծել նաև առանց դրա: Եկեք նայենք
գործնական օրինակի:
Ենթադրենք ունենք թվերի զանգված: Եկեք այն
վերադասավորենք ցիկլով և թվերը, որոնք բաժանվում են
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: