menu

Работа со знамиња во JavaScript

Сега ќе научиме да работиме со знамиња. Знаме е специјална променлива која може да земе само две вредности: true и false. Со помош на знамиња може да се решаваат задачи кои проверуваат отсуство на нешто: на пример, може да се провери дали во низата нема елемент со одредена вредност. Да започнеме.

Да ја решиме следната задача: дадена е низа со броеви, треба да се провери дали во неа има елемент со вредност 3 или не. Ако има - ќе испечатиме '+++', ако нема - ќе испечатиме '---'.

За почеток да се обидеме да испечатиме '+++'. За ова ќе ги поминеме сите елементи на нашата низа и со условна наредба ќе прашаме - дали тековниот елемент е еднаков на вредноста 3. Ако е еднаков - ќе испечатиме '+++':

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); } }

Но нашето решение не е многу добро: бидејќи ако во низата ќе има не една вредност 3, туку неколку, тогаш '+++' ќе се испечати неколку пати. Да ја поправиме нашата низа (да направиме два елементи со вредност 3) и да се увериме во ова:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // ќе испечати неколку пати } }

Да ја поправиме грешката: ќе го прекинеме циклусот со помош на break, ако елементот е веќе пронајден:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // го прекинуваме циклусот } }

Сега да се обидеме да направиме така што, ако во низата воопшто нема елементи со вредност 3, да се испечати '---'. Честа заблуда би било да се додаде else на нашата условна наредба - во овој случај '---' ќе се печати за сите елементи кои не се 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // ќе испечати за елементот 3 } else { console.log('---'); // ќе испечати за елементите 1, 2, 4, 5 } }

Значи, идејата да се додаде else - е лоша идеја, не работи. За решавање на задачи од овој тип (таквите задачи се среќаваат доволно често) се користат таканаречените знамиња.

Како што беше споменато погоре, знаме е таква променлива, која може да земе две вредности: true или false.

Значи, да направиме променлива flag со таква вредност: ако таа е еднаква на true, тогаш во низата има елемент 3, а ако е false, тогаш таков елемент нема.

Иницијално ќе ја поставиме променливата flag на вредност false - односно ќе сметаме, дека елементот 3 го нема во низата:

let arr = [1, 2, 3, 4, 5]; let flag = false; // сметаме дека елементот 3 го нема во низата

Потоа ќе пуштиме циклус со условна наредба така, како што го правевме тоа порано. Ако циклусот открие дека во низата има елемент 3 - тогаш ќе ја поставиме променливата flag на вредност true и ќе излеземе од циклусот со помош на break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // сметаме дека елементот 3 го нема во низата for (let elem of arr) { if (elem == 3) { flag = true; // елементот постои - ја менуваме променливата flag break; // излегуваме од циклусот } }

Одговорот на прашањето, дали во низата има 3 или не, можеме да го дадеме само по циклусот. И овој одговор веќе го имаме: после циклусот променливата flag можела да остане false или можела да ја смени својата вредност на true, ако циклусот открил во низата 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // овде променливата flag е еднаква или на true, или на false

Сега после циклусот можеме да направиме условна наредба, која ќе ја погледне променливата flag и ќе испечати на екран '+++' или '---':

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } if (flag === true) { console.log('+++'); } else { console.log('---'); }

Дадена е низа:

let arr = ['a', 'b', 'c', 'd', 'e'];

Проверете дали во оваа низа има елемент 'c'. Ако има - испечатете '+++', а ако нема - испечатете '---'.

Напишете код кој ќе проверува дали бројот е прост или не. Прост број се дели само на единица и на самиот себе, и не се дели на други броеви.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј