Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Forco daljen nga cikli në javascript. Rreth funksioneve të reduktimit dhe filtrimit

Qëllimi kryesor i JavaScript while është të ekzekutojë në mënyrë të përsëritur një pjesë të caktuar kodi, pa pushim. Është shumë e ngjashme me ciklin for me një ndryshim të rëndësishëm. Më lejoni të marr pak nga koha juaj për të shpjeguar ndryshimin midis këtyre dy llojeve të sytheve.

Cili është ndryshimi midis sytheve while dhe for?

Dallimi midis këtyre sytheve është se si ato ndalojnë ekzekutimin e një pjese të kodit.

Cikli for funksionon për numrin e caktuar të përsëritjeve. Ne e dimë saktësisht se sa herë laku do të ekzekutojë fragmentin e kodit të mbyllur në trupin e tij.

Me kalimin e kohës, gjërat janë ndryshe. Cikli JavaScript while ekzekutohet për sa kohë që kushti i specifikuar është i vërtetë. Pasi kushti vlerësohet në false, atëherë cikli while përfundon.

Arsyeja pse këto sythe janë të ndryshme është se ne nuk mund ta dimë domosdoshmërisht paraprakisht kur një kusht i caktuar nuk do të jetë më i vërtetë. Prandaj, ne nuk mund të parashikojmë se sa përsëritje të lakut while do të ekzekutohen derisa të prishet.

Të mirat dhe të këqijat e një cikli të shkurtër

Më lejoni të filloj duke parë anën e vetme negative të ciklit while. Mund të funksionojë përgjithmonë!

Nëse e gjeni veten në një situatë ku cikli while vazhdon të funksionojë pafundësisht, atëherë programi juaj do të bllokohet (ose do të varet). Pastaj duhet të mbyllni shfletuesin për të ndërprerë ekzekutimin e kodit JavaScript.

Duhet të theksoj se JavaScript është i pamenaxhuar ndërsa cikli zakonisht nuk funksionon përgjithmonë. Sepse, si programues, ne gjithmonë duhet të sigurohemi që në një moment gjendja e ciklit tonë while të bëhet false.

Tani për sa i përket "pluseve" - ​​ato janë shumë të dukshme. Ndërsa do të funksionojë vazhdimisht për sa kohë që kushti është i vërtetë. Një shembull i përdorimit të një cikli while është t'i kërkoni përdoruesit për të dhëna. Cikli do t'ju kërkojë të futni të dhëna vazhdimisht derisa përdoruesi të futë të dhënat e sakta.

ndërsa sintaksa e ciklit

Sintaksa për sythe for dhe while është shumë e ngjashme.

Ju duhet të përdorni fjalën kyçe while, dhe gjithashtu të përcaktoni gjendjen në të cilën do të ekzekutohet cikli. Ashtu si strukturat e tjera të kontrollit, një cikli while përcakton një shtrirje.

Ja se si duhet të duket kodi:

ndërsa () ( // ngjisni kodin këtu që duhet të hapet)

Pjesa më e vështirë është të kuptosh se cilat kushte ose kushte të vendosen në ciklin që ai të funksionojë siç duhet.

Mos harroni se për sa kohë që kushti është i vërtetë, cikli do të vazhdojë të funksionojë. Le të shohim një shembull të përdorimit gjatë kohës në JavaScript.

ndërsa shembulli i ciklit

Supozoni se duam t'i kërkojmë përdoruesit të fusë një numër midis 1 dhe 10. Por çfarë ndodh nëse ai fut numrin e gabuar?

Në këtë rast, ne duhet t'i kërkojmë atij të fusë përsëri vlerën dhe të kontrollojë nëse kushti plotësohet ( nëse një numër është futur ndërmjet 1 dhe 10).

Ky është një rast në të cilin cikli for do të dështonte keq. Sepse ne nuk mund ta dimë paraprakisht se sa herë do të duhet t'i kërkojmë përdoruesit të fusë numrin e saktë. Në këtë rast, cikli while na vjen në shpëtim.

Ja se si mund të duket kodi ynë:

var theNumber = prompt("Ju lutemi vendosni një numër midis 1 dhe 10."); ndërsa (Numri< 1 || theNumber >10 || isNaN(theNumber)) (theNumber = prompt("Vlera e gabuar, ju lutemi vendosni një numër midis 1 dhe 10!"); ) alert("Shkëlqyeshëm! Ke futur një numër: " + theNumber);

Vlen të përmendet se në shembullin e mësipërm, ne kemi tre kushte të veçanta në ciklin JavaScript while.

Këto janë tre kushtet: pastajNumri 10 || ështëNaN (numri). Ato tregojnë sa vijon:

  • NËSE numri është më i vogël se 1, OSE;
  • NËSE numri është më i madh se 10, OSE;
  • NËSE numri NUK është një numër, atëherë vazhdoni ciklin.

Meqenëse ne përdorim operatorin OR (||) midis të gjitha kushteve, kjo do të thotë se nëse ndonjë prej kushteve është i vërtetë, atëherë gjendja e përgjithshme e ciklit while do të vlerësohet në true dhe cikli do të vazhdojë.

Vetëm nëse të tre kushtet vlerësohen në false, gjendja e përgjithshme e ciklit while do të vlerësohet në false dhe do të ndalojë.

konkluzioni

JavaScript while loop është i vetmi cikli real në gjuhët e programimit. for është vetëm një lloj i veçantë i ciklit while.

Këtu mund të rikrijoni vetë ciklin for duke përdorur sintaksën e ciklit while, shikoni dhe mësoni:

var numërues = 0; ndërsa (kundër< 10) { counter = counter + 1; console.log("The counter is currently at: " + counter); }

Kodi do të përsëritet saktësisht 10 herë, as më shumë e as më pak. Kjo është pikërisht mënyra se si funksionon cikli for.

Mos kini frikë të përdorni JavaScript ndërsa . Meqenëse pa të, shumë aplikacione thjesht nuk do të funksiononin siç duhet!

Shpresoj se ju ka pëlqyer ky artikull.

Përkthimi i artikullit "While Loop in JavaScript" u përgatit nga ekipi miqësor i projektit.

Mire keq

Përditësimi i fundit: 04/08/2018

Ciklet ju lejojnë të kryeni disa veprime shumë herë, në varësi të kushteve të caktuara. JavaScript ka llojet e mëposhtme të sytheve:

    për...në

    për...nga

    derisa

    bej Nderkohe

për lak

Cikli for ka përkufizimin zyrtar të mëposhtëm:

Për ([inicializimi i kundërvlerësimit]; [kushti]; [ndryshimi i kundërvlerësimit])( // veprimet )

Për shembull, ne përdorim një lak for për të përsëritur mbi elementët e një grupi:

Var njerëzit = ["Tom", "Alice", "Bob", "Sam"]; për (var i = 0; i

Pjesa e parë e deklaratës së ciklit - var i = 0 - krijon dhe inicializon variablin kundër - i. Dhe përpara se të ekzekutohet cikli, vlera e tij do të jetë e barabartë me 0. Në fakt, kjo është njësoj si të deklaroni një ndryshore.

Pjesa e dytë është kushti në të cilin do të ekzekutohet laku. Në këtë rast, cikli do të funksionojë derisa vlera e i të arrijë një vlerë të barabartë me gjatësinë e grupit të njerëzve. Ju mund të merrni gjatësinë e një vargu duke përdorur veçorinë gjatësi: njerëzit.length .

Pjesa e tretë është duke e rritur numëruesin me një.

Dhe duke qenë se ka 4 elementë në grup, blloku i ciklit do të funksionojë 4 herë derisa vlera e i të bëhet e barabartë me njerëzit.length (domethënë 4). Dhe çdo herë kjo vlerë do të rritet me 1. Çdo përsëritje e veçantë e ciklit quhet përsëritje. Kështu, në këtë rast, 4 përsëritje do të funksionojnë.

Dhe me ndihmën e shprehjes People[i], ne mund të marrim një element grupi për shfaqjen e tij të mëvonshme në shfletues.

Nuk është e nevojshme të rritet numëruesi me një, mund të kryeni veprime të tjera me të, për shembull, ta ulni atë me një:

Var njerëzit = ["Tom", "Alice", "Bob", "Sam"]; for(var i = njerëz.gjatësia - 1; i >= 0; i--)( konsol.log(njerëz[i]); )

Në këtë rast, grupi shfaqet nga fundi, dhe përsëritja e grupit fillon nga i = 3 në i = 0.

për...në

Cikli for..in është krijuar për të përsëritur mbi vargje dhe objekte. Përkufizimi i tij zyrtar është:

Për (indeks në grup) ( // veprime )

Për shembull, le të përsërisim mbi elementet e një grupi:

Var njerëzit = ["Tom", "Alice", "Bob", "Sam"]; for(var index në njerëz)( console.log(njerëzit); )

për...e lak

Cikli for...of është i ngjashëm me ciklin for...in dhe është krijuar për të përsëritur mbi koleksione, si vargje:

Lëri përdoruesit = ["Tom", "Bob", "Sam"]; for(let val of users) console.log(val);

Elementi aktual i përsëritur i koleksionit vendoset në variablin val, vlera e së cilës më pas printohet në tastierë.

ndërsa lak

Cikli while ekzekutohet për sa kohë që disa kushte janë të vërteta. Përkufizimi i tij zyrtar është:

Ndërsa(kushti)( // veprimet )

Përsëri, ne shfaqim elementet e grupit duke përdorur ndërkohë:

Var njerëzit = ["Tom", "Alice", "Bob", "Sam"]; indeksi var = 0; ndërsa (indeksi< people.length){ console.log(people); index++; }

Cikli while këtu do të ekzekutohet derisa vlera e indeksit të bëhet e barabartë me gjatësinë e grupit.

bej Nderkohe

Në një cikli do, kodi i ciklit ekzekutohet fillimisht dhe më pas kontrollohet gjendja në deklaratën while. Dhe ndërsa kjo gjendje është e vërtetë, cikli përsëritet. Për shembull:

Var x = 1; do( console.log(x * x); x++; )while(x< 10)

Këtu, kodi i ciklit do të ekzekutohet 9 herë derisa x të bëhet 10. Në këtë rast, cikli do garanton të paktën një ekzekutim të veprimeve, edhe nëse kushti në deklaratën while nuk është i vërtetë.

vazhdojnë dhe thyejnë deklaratat

Ndonjëherë është e nevojshme të dilni nga një lak përpara se të përfundojë. Në këtë rast, ne mund të përdorim deklaratën break:

< array.length; i++) { if (array[i] >10) pushim; document.write(array[i] + "
"); }

Ky cikli përsëritet nëpër të gjithë elementët e grupit, megjithatë katër elementët e fundit nuk do të shfaqen në shfletues sepse kontrolli if (array[i] > 10) do ta thyejë ciklin me një deklaratë break kur përsëritja e grupit të arrijë elementi 12.

Nëse thjesht duam të kapërcejmë përsëritjen, por jo të dalim nga cikli, mund të përdorim deklaratën vazhdim:

varg varg = [1, 2, 3, 4, 5, 12, 17, 6, 7]; për (var i = 0; i< array.length; i++) { if (array[i] >10) vazhdoni; document.write(array[i] + "
"); }

Në këtë rast, nëse programi ndeshet me një numër më të madh se 10 në grup, atëherë ky numër nuk do të shfaqet në shfletues.

Cikli for është cikli më i përdorur për në JavaScript.

Ndërtimi i tij duket si ky:

Për (fillim; kusht; hap) ( /* trupi i ciklit */ )

Gjithçka është vërtet e thjeshtë. Le të shohim një shembull:

Vari; për (i = 1; i

Në këtë shembull:

  • Fillimi i ciklit: i = 1 (duke filluar nga i = 1)
  • Gjendja Cic: i
  • Hapi i ciklit: i++ (rritni i me 1 në çdo hap të ciklit)
  • Trupi i lakut:document.write("

    Numri i hapit të ciklit është ekzekutuar: " + "

    "); (shfaq mesazhin)

Algoritmi hap pas hapi për ekzekutimin e këtij cikli për, më në detaje:

  1. Fillimi i ciklit: i është caktuar vlera 1. Kjo pjesë e ciklit ekzekutohet një herë.
  2. Kontrollohet gjendja e ciklit (i 5) - fundi i ciklit.
  3. Trupi i lakut është ekzekutuar.
  4. Hapi i ciklit është ekzekutuar. Në rastin tonë i++. Ai ekzekutohet gjithmonë pas trupit të lakut.
  5. Kthehu në pikën 2.

Nëse trupi i lakut përbëhet nga një deklaratë e vetme, atëherë mbajtëset kaçurrelë {...} nuk kërkohet të vendoset.

Ndryshorja i nuk zhduket pas përfundimit të ciklit. Ai vazhdon të ekzistojë dhe vlera e tij pas përfundimit të ciklit do të jetë e barabartë me 6.

Le t'i përmbledhim këto të dhëna në një shembull të ri:

Vari; për (i = 1; i

Kllapat kaçurrelë nuk u përdorën këtu për të krijuar trupin e lakut.

Kllapat {...} formimi i një blloku në JavaScript është një nga konstruktet gjuhësore. Kjo do të thotë, nëse ka kllapa kaçurrelë pas deklaratës së ciklit for, kjo do të thotë që procesori JavaScript duhet të ekzekutojë të gjithë bllokun JavaScript.

Ashtu si një bllok, ju mund të specifikoni një funksion në një cikli for. Këtu është një shembull:

Për (var i = 1; i

Por kur deklaron një funksion kllapa kaçurrelë {...} kërkohet. Mungesa e tyre do të rezultojë në një gabim.

Vini re se në këtë cikli, ndryshorja i deklarohet në fillim të ciklit: për ( var i = 1; i

Kapërcimi i pjesëve për

Në përgjithësi, fillimi i ciklit mund të anashkalohet:

Vari = 1; për (;i

E shihni, është vetëm një pikëpresje në fillim të ciklit, dhe laku funksionon mirë.

Ju gjithashtu mund të hiqni hapin:

Vari = 1; për (;i

Ky cikli for është bërë një analog i kohës (d.m.th

Mund të vendosni një shprehje në kushtin që ndryshon variablin.

Për (i = 10; i--;) (dokument.shkruaj("

Hapi i ciklit është ekzekutuar: " + i + ".

"); }

Meqenëse përkthyesi JavaScript pret të marrë një vlerë boolean, çdo vlerë konvertohet në një lloj boolean, kur ndryshorja i bëhet e barabartë me 0 (false) si rezultat i zvogëlimit të ardhshëm, cikli do të ndalojë.

Pafund për lak

Po, po, e di që është e saktë të shkruash pafund :)

Pra, cikli do të jetë i pafund nëse kushti është gjithmonë i vërtetë. Këtu është një shembull:

Për (var i = 1; i

Në këtë shembull, ndryshorja i do të ulet dhe nuk do të jetë kurrë më e madhe se pesë. Lakja do të funksionojë përgjithmonë. Provoni të ekzekutoni këtë skript. Chrome im "mendoi" dhe nuk shfaqi asgjë në ekran, por vazhdoi të mendojë dhe të mendojë.

Kini kujdes që të mos krijoni aksidentalisht sythe të pafundme.

Thyerja e lakut për

Për të thyer një lak për, ashtu si për të thyer çdo lak tjetër, përdorni komandën break. Kur motori JavaScript ndeshet me një deklaratë pushimi në trupin e një cikli, ai ndalon ciklin dhe fillon të ekzekutojë deklaratat e skriptit që pasojnë ciklin. nëse ka ndonjë.

Në shembullin e mëposhtëm, ne do të ndalojmë ciklin në përsëritjen e tretë (hapi i tretë).

Për (var i = 1; i

Le ta komplikojmë pak shembullin.

Le të ekzekutojmë vetëm 100 përsëritje të një cikli të pafund.

var $counter = 1; për (var i = 1; i

Përsëritja tjetër: vazhdoni

Komanda vazhdim përfundon përsëritjen aktuale dhe fillon përsëritjen tjetër.

Direktiva e vazhdimit është "motra më e vogël" e direktivës së pushimit, ajo ndalon vetëm përsëritjen, jo të gjithë ciklin.

Për (var i = 1; i

Cikli i mëposhtëm përdor vazhdimin për të nxjerrë vlera tek:

Për (var i = 0; i

Sigurisht, vlerat e çuditshme mund të shfaqen me një lak si ky pa një direktivë vazhdimi:

Për (var i = 0; i

Direktivat e pushimit / vazhdimit në "?"

Le të përshkruajmë shkurtimisht operatorin e pikëpyetjes "?". Është i ngjashëm me konstruktin if.

Dizajni logjik:

Nëse (kushti) (a(); ) tjetër (b();)

Punon njësoj si kodi me operatorin "?".

Kushti? a() : b(); var i = 2; document.write("

Pjesa 1.

"); nëse (i == 2) document.write("

Gjendja funksionoi.

"); else document.write("

Gjendja nuk funksionoi.

"); document.write("

Pjesa 2.

");i == 2 ?document.write("

Gjendja funksionoi.

") : document.write("

Gjendja nuk funksionoi.

");

Pra ja ku është e rëndësishme, nuk mund të përdorni pushim/vazhdim në të djathtë të "?"

Në JavaScript, konstruktet sintaksore që nuk kthejnë një vlerë nuk lejohen në operatorin "?".

Shembulli i mëposhtëm nuk funksionon, përmban një gabim:

Për (var i = 0; i

Etiketat për pushim / vazhdim

Ndonjëherë bëhet e nevojshme të krijohen sythe të mbivendosur. Në një rast të tillë, ndërsa cikli i mbivendosur është duke u ekzekutuar, mund të jetë e nevojshme të ndaloni ciklin prind ose të ndaloni përsëritjen e ciklit prind. Për këtë përdoren etiketat.

Ju mund të përdorni etiketa për të shënuar sythe, në mënyrë që më pas të përdorni ndërprerjen ose të vazhdoni të dilni nga cikli ose të vazhdoni ciklin me një përsëritje të re.

Etiketat janë mënyra e vetme që komandat e ndërprerjes dhe vazhdimit të ndikojnë në ekzekutimin e lakut të jashtëm.

Deklarata e etiketës përdoret vetëm në lidhje me ndërprerjen ose vazhdoni të dilni në mënyrë alternative nga cikli.

Etiketa ka sintaksën "emri:", emri i etiketës duhet të jetë unik. Etiketa vendoset përpara lakut, në të njëjtën linjë ose me një thyerje vije.

Në mënyrë të ngjashme, ju mund të përdorni direktivën e pushimit në këtë vend. Por nëse e përdorni, siç e kuptoni, ekzekutimi i cikleve do të ndalet.

Var i, j; metka1: për (i = 0; i

JavaScript nuk ka një deklaratë goto siç ka PHP, mund të përdoren vetëm etiketat me ndërprerje ose vazhdim.

Etiketat përdoren rrallë në programimin JavaScript, pasi konsiderohet se e bëjnë kodin më të vështirë për t'u lexuar dhe kuptuar. Rekomandohet përdorimi i funksioneve gjatë kodimit.

Loops janë një mënyrë e thjeshtë për të bërë diçka shumë herë. Ky kapitull i Udhëzuesit JavaScript do t'ju prezantojë me operatorët e ndryshëm të disponueshëm në JavaScript.

Ju mund ta mendoni ciklin si një version të kompjuterizuar të lojës ku i thoni dikujt të bëjë X hapa në një drejtim, pastaj Y hap në tjetrin; për shembull, ideja e lojës "Shko 5 hapa në lindje" mund të shprehet si një lak:

Varstep; për (hap = 0; hap< 5; step++) { // Запускается 5 раз, с шагом от 0 до 4. console.log("Идём 1 шаг на восток"); }

Ka shumë lloje të ndryshme sythe, por të gjitha në thelb bëjnë të njëjtën gjë: ata përsërisin disa veprime disa herë (mos harroni për kohën zero të përsëritjes, numërimi mbrapsht në grup fillon nga 0). Sythet e strukturave të ndryshme ofrojnë mënyra të ndryshme për të përcaktuar fillimin dhe fundin e një laku. Për detyra të ndryshme programimi, ekzistojnë operatorët e tyre të lakut, me ndihmën e të cilëve ato zgjidhen shumë më lehtë.

Deklaratat looping në JavaScript:

për lak

Cikli për përsërit veprimet derisa të ndodhë ndonjë ngjarje e veçantë e përfundimit të ciklit. Deklarata for në JavaScript është e ngjashme me deklaratën for në Java dhe C. Deklarata e deklaratës for duket si kjo:

Për shprehjet ([fillimi]; [kushti]; [hapi]).

Kur ekzekutohet, ndodh si më poshtë:

  1. Shprehja e fillimit ekzekutohet, nëse specifikohet. Kjo shprehje zakonisht inicializon një ose më shumë numërues, por sintaksa lejon që shprehja të jetë e çdo kompleksiteti. Përdoret gjithashtu për të deklaruar variabla.
  2. Kushti eshte plotesuar. Nëse kushti është i vërtetë, atëherë shprehjet ekzekutohen. Nëse është false, cikli for përfundon. Nëse kushti hiqet plotësisht, atëherë ai konsiderohet i vërtetë.
  3. Ekzekutohen shprehjet. Për të ekzekutuar shprehje të shumta, një shprehje bllok ( ... ) përdoret për të grupuar shprehjet.
  4. Përditëson hapin, nëse ka, dhe më pas kthehet në hapin 2.

Shembull

Funksioni i mëposhtëm ka një qark for që numëron numrin e zhanreve të zgjedhura në listën e lëvizjes (elementi është një kontroll që përmban një meny opsionesh:"> , ekzekuton deklaratën if dhe rrit i me një pas çdo përsëritjeje të ciklit.

bëj...while lak

Cikli do...while përsëritet ndërsa kushti i dhënë është i vërtetë. Deklarata do...while duket si kjo:

Bëj shprehje while (kusht);

shprehjet ekzekutohen ndërsa kushti është i vërtetë. Për të përdorur shprehje të shumta, përdorni një shprehje bllok ( ... ) për t'i grupuar ato. Nëse kushti është i vërtetë, shprehjet do të ekzekutohen përsëri. Në fund të çdo kalimi, gjendja kontrollohet. Nëse kushti është false, ekzekutimi pezullohet dhe kontrolli transferohet në shprehjen pas do...ndërsa .

Shembull

Në shembullin e mëposhtëm, cikli do të ekzekutohet të paktën 1 herë dhe do të ekzekutohet përsëri për sa kohë që i është më pak se 5.

Bëni (i += 1; console.log(i); ) ndërsa (i< 5);

ndërsa lak

Cikli while ekzekuton shprehjet ndërsa kushti është i vërtetë. Duket kështu:

Ndërsa (kusht) shprehje

Nëse kushti bëhet fals, shprehjet në lak ndalojnë së ekzekutuari dhe kontrolli kalon në shprehjen pas ciklit.

Kushti kontrollohet për vërtetësi përpara se të ekzekutohen shprehjet në lak. Nëse kushti është i vërtetë, shprehjet ekzekutohen dhe më pas kushti testohet përsëri. Nëse kushti është false, ekzekutimi pezullohet dhe kontrolli kalon në shprehjen pas kohës.

Për të përdorur shprehje të shumta, përdorni një bllok shprehjeje ( ... ) për t'i grupuar ato.

Shembulli 1

Cikli i mëposhtëm while funksionon për sa kohë që n është më pak se tre:

Varn = 0; var x = 0; ndërsa (n< 3) { n++; x += n; }

Me çdo përsëritje, cikli rrit n dhe e shton atë vlerë në x. Prandaj, x dhe n marrin vlerat e mëposhtme:

  • Pas kalimit të parë: n = 1 dhe x = 1
  • Pas të dytës: n = 2 dhe x = 3
  • Pas kalimit të tretë: n = 3 dhe x = 6

Pas kalimit të tretë, kushti n< 3 становится ложным, поэтому цикл прерывается.

Shembulli 2

Shmangni sythe të pafundme. Sigurohuni që gjendja e lakut të bëhet përfundimisht false; përndryshe, cikli nuk do të prishet kurrë. Shprehjet në ciklin e ardhshëm while do të funksionojnë përgjithmonë, sepse gjendja nuk do të bëhet kurrë false:

Ndërsa (e vërtetë) (console.log ("Përshëndetje, botë"); )

Etiketa

Një etiketë është një deklaratë me një identifikues që ju lejon t'i referoheni një vendndodhjeje në programin tuaj. Për shembull, mund të përdorni një etiketë për të treguar një cikli, dhe më pas të përdorni deklaratat e ndërprerjes ose vazhdimit për të treguar nëse programi duhet të prishë ciklin ose të vazhdojë ta ekzekutojë atë.

Sintaksa e etiketës është si më poshtë:

Etiketa: operator

Kuptimi etiketat mund të jetë çdo identifikues i vlefshëm JavaScript që nuk është fjalë e rezervuar. Operatori , ai që specifikoni pas etiketës mund të jetë çdo shprehje.

Shembull

Në këtë shembull, etiketa markLoop tregon një cikli while.

MarkLoop: ndërsa (theMark == e vërtetë) ('doSomething();

thyej

Përdorni deklaratën break për të thyer një lak, për të ndërruar kontrollin ose në kombinim me një deklaratë etikete.

  • Kur përdorni ndërprerjen pa etiketë, ajo thyen ciklin while , do-while dhe për, ose kalon menjëherë kontrollin në deklaratën tjetër.
  • Kur përdorni pushim me një etiketë, ajo thyen shprehjen e shënuar posaçërisht.

Sintaksa e operatorit mund të jetë:

  1. pushim;
  2. thyej Etiketa;

Forma e parë e sintaksës thyen ciklin krejtësisht ose ndërron kontrollin; e dyta thyen shprehjen e shënuar posaçërisht.

Shembull 1

Shembulli i mëposhtëm përsëritet përmes elementeve në një grup derisa të gjejë një element vlera e të cilit është Vlera:

Për (i = 0; i< a.length; i++) { if (a[i] == theValue) { break; } }

Shembulli 2: Ndërprerja e etiketës

var x = 0; var z = 0 labelCancelLoops: while (true) (console.log ("Cak i jashtëm: " + x); x += 1; z = 1; ndërsa (true) (console.log ("Cak i brendshëm: " + z) ;z += 1;nëse (z === 10 && x === 10) (etiketa e ndërprerjesCancelLoops; ) tjetër nëse (z === 10) (ndërprerje; ) )

vazhdojnë

Deklarata vazhdim përdoret për të ecur përpara në while , do-while , për sythe ose për të kaluar te një etiketë.

  • Kur përdorni vazhdimin pa etiketë, ai thyen përsëritjen aktuale të ciklit while , do-while dhe for dhe vazhdon ciklin në përsëritjen tjetër. Ndryshe nga break , vazhdimi nuk e thyen plotësisht ciklin. Në ciklin while, ai kalon në gjendje. Dhe në për rrit hapin.
  • Kur përdorni vazhdimin me një etiketë, ai zbatohet në ciklin me atë etiketë.

Sintaksa e vazhdimit mund të duket si kjo:

  1. vazhdo;
  2. vazhdojnë Etiketa ;

Shembulli 1

Shembulli i mëposhtëm tregon një cikli while me një deklaratë vazhdimi që funksionon kur vlera e i është 3. Pra, n merr vlerat 1, 3, 7 dhe 12.

Vari = 0; varn = 0; nderkohe une< 5) { i++; if (i == 3) { continue; } n += i; }

Shembulli 2

Shprehja e shënuar checkiandj përmban një shprehje të shënuar kontrolloj. Pas takimit të vazhdimit, programi përfundon përsëritjen aktuale kontrolloj dhe fillon përsëritjen tjetër. Çdo herë që hasni, vazhdoni, kontrolloj kalon në përsëritjen tjetër ndërsa kushti kthehet false. Kur false kthehet pas llogaritjes së pjesës së mbetur checkiandj, checkiandj kalon në përsëritjen tjetër për sa kohë që gjendja e tij kthehet false. Kur kthehet false, programi vazhdon ekzekutimin nga shprehja pas checkiandj.

Nëse vazhdoni është etiketuar checkiandj, programi mund të vazhdojë nga fillimi i etiketës checkiandj.

Checkiandj: ndërsa (i< 4) { console.log(i); i += 1; checkj: while (j >4) ( console.log(j); j -= 1; if ((j % 2) != 0) (vazhdoni kontrolloj; ) console.log (j + " even."); ) console.log ("i =" + i); console.log ("j = " + j); )

për...në

Deklarata for...in përsërit mbi të gjitha vetitë e numërueshme të një objekti. JavaScript do të ekzekutojë shprehjet e specifikuara për çdo pronë individuale. Loop for...in duket kështu:

Për (ndryshueshme në objekt) ( shprehje )

Shembull

Funksioni i mëposhtëm merr një objekt dhe emrin e tij si argument. Më pas kalon nëpër të gjitha vetitë e objektit dhe kthen një varg që përmban emrat e vetive dhe vlerat e tyre.

Funksioni dump_props(obj, obj_name) (var rezultat = ""; për (var i në obj) (rezultat += obj_name + "." + i + " = " + obj[i] + "
"; ) rezultat += "


"; rezultati i kthimit;)

Për një objekt makine me karakteristika të markës dhe modelit, rezultat do:

makinë.make = makinë Ford.model = Mustang

Shembulli #2

Gjithashtu, me çelës, mund të shfaqni vlerën:

Le të obj = (modeli: "AUDI A8", viti: "2019", ngjyra: "kafe") për (çelësi në obj) ( console.log(`$(key) = $(obj)`); ) // model = AUDI A8 // viti = 2019 // ngjyra = kafe

Vargjeve

Edhe pse është shumë joshëse për t'u përdorur për...në si një mënyrë për të përsëritur të gjithë elementët e një Array, ky operator kthen emrin e vetive të përcaktuara nga përdoruesi përveç indekseve numerike. Kështu, është më mirë të përdoret standardi për për indekset numerike kur ndërveprohet me vargje, sepse operatori për...në përshkon vetitë e përcaktuara nga përdoruesi përveç elementeve të grupit nëse modifikoni grupin, si shtimi i vetive dhe metodave.

per ( variablave e Objekt) { shprehjet}

Shembulli i mëposhtëm tregon ndryshimin midis për...of dhe për...në sythe. Ndërsa për...në përsëritjet mbi emrat e pronave, për...të përsëritjet mbi vlerat e pronës:

Le të arr = ; arr.foo = "përshëndetje"; for (le i në arr) (consol.log(i); // nxjerr "0", "1", "2", "foo") për (le i nga arr) (consol.log(i); / / nxjerr "3", "5", "7")

Ciklet janë shprehje të veçanta që ju lejojnë të ekzekutoni të njëjtin bllok kodi disa herë. Ekzekutimi i kodit ndërpritet kur ndodh një gjendje e caktuar.

JavaScript u ofron programuesve disa shije cikle. Le t'i shqyrtojmë ato në më shumë detaje.

Lak me numërues

Cikli me një numërues është i përshtatshëm nëse disa kode duhet të ekzekutohen një numër të përcaktuar rreptësisht herë. Ky është ndoshta lloji më i zakonshëm i lakut.

Laku me numërues shkruhet kështu:

per (<выражение инициализации>; <условие>; <приращение>)
<тело цикла>

Fjala kyçe for përdoret këtu. Prandaj, sythe të tilla shpesh quhen "për sythe".

Shprehja e inicializimit ekzekutohet së pari dhe vetëm një herë. Ai cakton një variabël të veçantë të quajtur numëruesi i ciklit në një vlerë fillestare (zakonisht 1). Numëruesi i lakut numëron sa herë është ekzekutuar trupi i ciklit - kodi aktual që duhet të ekzekutohet një numër të caktuar herë.

Hapi tjetër është testimi i gjendjes. Ai përcakton momentin kur qarku do të prishet dhe kodi që pason do të fillojë të ekzekutohet. Në mënyrë tipike, kushti krahason vlerën e numëruesit të lakut me vlerën e tij kufitare. Nëse kushti kthehet i vërtetë, trupi i ciklit ekzekutohet, përndryshe cikli përfundon dhe fillon ekzekutimi i kodit pas ciklit.

Pas kalimit të trupit ciklit ekzekutohet një shprehje në rritje që ndryshon vlerën e numëruesit. Kjo shprehje zakonisht e rrit numëruesin (e rrit vlerën e tij me një). Më pas, gjendja kontrollohet përsëri, trupi i lakut ekzekutohet, rritja ekzekutohet dhe kështu me radhë, derisa kushti të bëhet false.

Një shembull i një lak me një numërues:

për (i = 1; i< 11; i++) {
a += 3;
b = i * 2 + 1;
}

Ky lak do të ekzekutohet 10 herë. Vlerën fillestare 1 ia caktojmë numëruesit i dhe e rritim me një pas çdo ekzekutimi të trupit të ciklit. Laku do të ndalojë së ekzekutuari kur vlera e numëruesit rritet në 11 dhe kushti i ciklit bëhet false.

Numëruesi i lakut mund të shkruhet në një nga shprehjet e trupit të ciklit, siç bëmë ne. Në rastin tonë, numëruesi i do të përmbajë vlera në rritje vijuese nga 1 në 10, të cilat përdoren në llogaritjet.

Këtu janë dy shembuj të tjerë të një lak me një numërues:

për (i = 10; i > 0; i--) (
a += 3;
b = i * 2 + 1;
}

Këtu vlera e kundërvlerës zvogëlohet. Vlera e tij fillestare është 10. Cikli do të ekzekutohet 10 herë dhe do të përfundojë kur numëruesi i përmban 0; ndërsa vlerat e kësaj të fundit do të ulen në mënyrë sekuenciale nga 10 në 1.

për (i = 2; i< 21; i += 2) b = i * 2 + 1;

Dhe në këtë shembull, vlera fillestare e numëruesit është 2, dhe vlera përfundimtare është 21, por cikli do të ekzekutohet, përsëri, 10 herë. Dhe të gjitha sepse vlera e numëruesit rritet me 2 dhe në mënyrë sekuenciale merr vlerat 2, 4, 6 ... 20.

Loop me kusht postar

Një lak pas kushteve është i ngjashëm me një cikli kundër në shumë mënyra: ai ekzekutohet për aq kohë sa kushti i ciklit mbetet i vërtetë. Për më tepër, gjendja kontrollohet jo më parë, por pas ekzekutimit të trupit të lakut, kjo është arsyeja pse laku me kushtin postar mori emrin e tij. Një lak i tillë do të ekzekutohet të paktën një herë, edhe nëse gjendja e tij është false që në fillim.

Formati i ciklit pas gjendjes:

bëj
<тело цикла>
derisa (<условие>);

Fjalët kyçe do dhe ndërsa ofrohen për të specifikuar një lak me një kusht pas, kjo është arsyeja pse unazat e tilla shpesh quhen "loop-do-while".

Këtu është një shembull i një cikli me një kusht pas:

bej(
a = a * i + 2;
++i;
) ndërsa (a< 100);

Dhe këtu është një shembull tjetër:

var a = 0, i = 1;
bej(
a = a * i + 2;
++i;
) nderkohe une< 20);

Edhe pse këtu do të ishte më e përshtatshme të kishim një lak me një banak tashmë të njohur për ne dhe të krijuar posaçërisht për raste të tilla.

Lak me parakusht

Cikli me një parakusht ndryshon nga një lak me një kusht pas në atë që gjendja kontrollohet përpara se të ekzekutohet trupi i ciklit. Pra, nëse (kushti) fillimisht është false, cikli nuk do të ekzekutohet kurrë:

derisa (<условие>)
<тело цикла>

Fjala kyçe while përdoret për të krijuar një lak me një kusht postar. Prandaj, sythe të tilla quhen edhe "loops while" (të mos ngatërrohen me "loops do-while"!).

Një shembull i një cikli me një parakusht:

ndërsa (a< 100) {
a = a * i + 2;
++i;
}

Ndërprerja dhe rinisja e një cikli

Ndonjëherë është e nevojshme të ndërpritet ekzekutimi i lakut. Për ta bërë këtë, JavaScript u ofron programuesve të Uebit deklaratat e ndërprerjes dhe vazhdimit.

Deklarata break ju lejon të ndërprisni ekzekutimin e lakut dhe të kaloni në deklaratën tjetër pas tij:

ndërsa (a< 100) {
a = a * i + 2;
nëse (a > 50) thyejnë;
++i;
}

Në këtë shembull, ne thyejmë ciklin nëse vlera e ndryshores a do të kalojë 50.

Deklarata e rinisjes vazhdon ju lejon të rinisni ciklit, d.m.th lini të paekzekutuara të gjitha shprehjet pasuese të përfshira në trupin e ciklit dhe filloni ekzekutimin e ciklit që nga fillimi i tij: kontrollimi i gjendjes, ekzekutimi i rritjes dhe trupit, etj.

Shembull:

ndërsa (a< 100) {
i = ++i;
nëse (i > 9 && i< 11) continue;
a = a * i + 2;
}

Këtu ne e anashkalojmë shprehjen që llogarit a, për të gjitha vlerat i nga 10 në 20.

Artikujt kryesorë të lidhur