⊗jsPmLpFl 165 of 505 menu

Delo z zastavicami v JavaScript

Trenutno se bomo naučili delati z zastavicami. Zastavica je posebna spremenljivka, ki lahko sprejme le dve vrednosti: true in false. Z zastavicami je mogoče reševati naloge, ki preverjajo odsotnost nečesa: na primer, lahko preverite, ali v matriki ni elementa z določeno vrednostjo. Poglejmo si to.

Rešimo naslednjo nalogo: podana je matrika s števili, preveriti je treba, ali vsebuje element z vrednostjo 3 ali ne. Če obstaja - izpišite '+++', če ne - izpišite '---'.

Za začetek poskusimo izpisati '+++'. Za to bomo pregledali vse elemente naše matrike in z if vprašali - ali je trenutni element enak vrednosti 3. Če je enak - izpišemo '+++':

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

Toda naša rešitev ni zelo dobra: kajti če bo v matriki ne ena vrednost 3, ampak več, se bo '+++' izpisal večkrat. Popravimo našo matriko (naredimo dva elementa z vrednostjo 3) in se prepričajmo v to:

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

Popravimo težavo: prekinimo zanko s pomočjo break, če je element že najden:

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

Poskusimo zdaj narediti tako, da če v matriki sploh ni elementov z vrednostjo 3, izpiše '---'. Pogosta napačna predstava je dodati else k našemu ifu - v tem primeru se bo '---' izpisal za vse elemente, ki niso 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // izpiše se na elementu 3 } else { console.log('---'); // izpiše se na elementih 1, 2, 4, 5 } }

Torej, ideja o dodajanju else - je slaba ideja, ne deluje. Za reševanje tovrstnih nalog (takšne naloge se srečujejo dovolj pogosto) uporabljajo tako imenovane zastavice.

Kot že omenjeno zgoraj, zastavica je takšna spremenljivka, ki lahko sprejme dve vrednosti: true ali false.

Torej, naredimo spremenljivko flag s takšno vrednostjo: če je enaka true, potem v matriki obstaja element 3, če pa false, potem takšnega elementa ni.

Sprva postavimo spremenljivko flag na vrednost false - to pomeni, da bomo menili, da elementa 3 v matriki ni:

let arr = [1, 2, 3, 4, 5]; let flag = false; // menimo, da elementa 3 ni v matriki

Nato zaženimo zanko z ifom tako, kot smo to delali prej. Če zanka odkrije, da v matriki obstaja element 3 - potem postavimo spremenljivko flag na vrednost true in izstopimo iz zanke s pomočjo break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // menimo, da elementa 3 ni v matriki for (let elem of arr) { if (elem == 3) { flag = true; // element obstaja - predefiniramo spremenljivko flag break; // izstopimo iz zanke } }

Odgovor na vprašanje, ali je v matriki 3 ali ne, lahko podamo šele po zanki. In ta odgovor že imamo: po zanki je spremenljivka flag lahko ostala false ali pa je spremenila svojo vrednost na true, če je zanka odkrila v matriki 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // tukaj je spremenljivka flag enaka true ali false

Zdaj lahko po zanki naredimo if, ki bo pogledal spremenljivko flag in izpisal na zaslon '+++' ali '---':

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('---'); }

Podana je matrika:

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

Preverite, ali v tej matriki obstaja element 'c'. Če obstaja - izpišite '+++', če ne - izpišite '---'.

Napišite kodo, ki bo preverjala število, ali je praštevilo ali ne. Praštevilo je deljivo le z enico in s samim seboj, in ni deljivo z drugimi števili.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni