⊗jsPmLpFl 165 of 505 menu

Rad sa zastavicama u JavaScript-u

Sada ćemo naučiti kako da radimo sa zastavicama. Zastavica je specijalna promenljiva koja može da ima samo dve vrednosti: true i false. Pomoću zastavica možemo rešavati zadateke koji proveravaju odsustvo nečega: na primer, možemo proveriti da u nizu nema elementa sa određenom vrednošću. Hajde da započnemo.

Hajde da rešimo sledeći zadatak: dat je niz sa brojevima, treba proveriti da li u njemu postoji element sa vrednošću 3 ili ne. Ako postoji - ispisati '+++', ako ne - ispisati '---'.

Za početak hajde da pokušamo da ispišemo '+++'. Za to ćemo proći kroz sve elemente našeg niza i pomoću if-a postaviti pitanje - da li je trenutni element jednak vrednosti 3. Ako jeste - ispisaćemo '+++':

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

Ali naše rešenje nije baš dobro: jer ako u nizu bude ne jedna vrednost 3, već nekoliko, onda će se '+++' ispisati nekoliko puta. Hajde da ispravimo naš niz (napravimo dva elementa sa vrednošću 3) i uverimo se u ovo:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // ispisaće se više puta } }

Popravićemo problem: prekinuti ćemo petlju pomoću break, ako je element već pronađen:

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

Hajde sada da pokušamo da postignemo da, ako u nizu uopšte nema elemenata sa vrednošću 3, ispiše se '---'. Često pogrešno mišljenje je da dodamo else našem if-u - u tom slučaju će se '---' ispisati za sve elemente koji nisu 3:

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

Dakle, ideja da se doda else - loša je ideja, ne funkcioniše. Za rešavanje zadataka sličnog tipa (takvi zadaci se dovoljno često javljaju) koriste se takozvane zastavice.

Kao što je već pomenuto, zastavica je takva promenljiva koja može da primi dve vrednosti: true ili false.

Dakle, hajde da napravimo promenljivu flag sa takvom vrednošću: ako je jednaka true, onda u nizu postoji element 3, a ako je false, onda takav element ne postoji.

Početno ćemo postaviti promenljivu flag na vrednost false - to jest smatraćemo, da elementa 3 u nizu nema:

let arr = [1, 2, 3, 4, 5]; let flag = false; // smatramo da elementa 3 nema u nizu

Zatim ćemo pokrenuti petlju sa if-om, kao što smo to radili ranije. Ako petlja otkrije da u nizu postoji element 3 - onda ćemo postaviti promenljivu flag na vrednost true i izaći iz petlje pomoću break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // smatramo da elementa 3 nema u nizu for (let elem of arr) { if (elem == 3) { flag = true; // element postoji - promenićemo vrednost promenljive flag break; // izaći ćemo iz petlje } }

Odgovor na pitanje, da li u nizu ima 3 ili ne, možemo da damo tek nakon petlje. I taj odgovor već imamo: nakon petlje promenljiva flag može ostati false ili je mogla promeniti svoju vrednost na true, ako je petlja otkrila u nizu 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // ovde je promenljiva flag jednaka ili true, ili false

Sada, nakon petlje, možemo da napravimo if, koji će pogledati promenljivu flag i ispisati na ekran '+++' ili '---':

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

Dat je niz:

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

Proverite da li u ovom nizu postoji element 'c'. Ako postoji - ispišite '+++', a ako ne - ispišite '---'.

Napišite kod koji će proveravati da li je broj prost ili nije. Prost broj deli se samo sa jedan i sa samim sobom, a ne deli se drugim brojevima.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij