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

Unazat dhe përsëritjet. JavaScript - Sythe

Loops janë një nga mjetet më të rëndësishme të programimit. Ato janë të dobishme në rastet kur ju duhet të bëni diçka një numër të caktuar herë.

Nëse ka një detyrë të tillë, për shembull, shfaqni rreshtin "përshëndetje të gjithëve" 1000 herë. Më pas, pa përdorur një lak, së pari do të duhet shumë kohë dhe së dyti, nuk do të duket shumë bukur. Kështu që ciklet që duhet të njihni në mënyrë perfekte sepse ato përdoren shumë, shumë shpesh.

Ekzistojnë katër unaza në programim, këto janë while, do-while, for dhe foreach... Secila prej tyre ka sintaksën e vet dhe secila përdoret në raste specifike.

Llojet më të përdorura janë for dhe foreach, të ndjekura nga while, dhe cikli do-while është shumë i rrallë.

Dhe ne do të fillojmë me ciklin while.

Sintaksa për ciklin while është si më poshtë:


Së pari, ne deklarojmë një ndryshore i, e cila është një numërues, dhe brenda ciklit ne e rritim këtë numërues. Brenda kllapave, shkruani kushtin për hyrjen / daljen nga laku.

Komentoni! Shkruani saktë gjendjen e daljes, përndryshe mund të rezultojë loop pafund dhe më pas skenari do të varet... Një lak i tillë mund të ndodhë nëse, për shembull, shkruajmë true në kushtin e daljes.

Për shembull, le të shfaqim rreshtin "Përshëndetje të gjithëve!" 10 herë.

Var i = 0; ndërsa (i "); i ++;)

Ndryshorja i mund të fillojë nga 0 ose nga 1 ose nga çdo numër tjetër.

Kushti i daljes është në të njëjtën kohë kushti i hyrjes. Cikli funksionon si më poshtë: Së pari, kontrollon nëse ndryshorja i është më e vogël se 10, dhe nëse kushti është i vërtetë, atëherë futemi në ciklin, përndryshe, jo. Në këtë rast, nëse ndryshorja i është e barabartë me 30, për shembull, atëherë cikli nuk do të ekzekutohet, sepse 30 nuk është më pak se 10.

Hymë në lak, shfaqëm rreshtin "Përshëndetje të gjithëve", rritëm numëruesin dhe përsëri shkojmë te kushti, ku përsëri kontrollojmë nëse vlera e ndryshores i është më e vogël se 10, më pas futemi në cikli, në të kundërtën dalim. Dhe kjo ndodh deri në momentin kur kushti i hyrjes bëhet false, pra vlera e ndryshores i do të jetë 10. 10 nuk është më pak se 10, kështu që nuk hyjmë më në lak, por vazhdojmë.

Komentoni! Mos harroni të rritni numëruesin (i ++), përndryshe do të përfundoni përsëri në një lak të pafund.

Me ciklin while të rregulluar, tani le të kalojmë te cikli do-while.

Sintaksa për ciklin do-while është si më poshtë:


Dallimi midis ciklit while dhe ciklit do-while është se cikli do-while mund të ekzekutohet të paktën një herë, pavarësisht nga kushti, ndërsa cikli while, nëse kushti është false, nuk do të ekzekutohet fare.

Komentoni! Ashtu si me ciklin while, mos harroni të rritni numëruesin i.

Le të kalojmë në praktikë. Për shembull, le të numërojmë prodhimin e numrave nga 1 në 10.

Var i = 1; prodhimi var = 1; bëj (prodhimi * = i; i ++;) ndërsa (i

Rezultati do të jetë numri 3628800. Në hapin e parë, ne kemi hyrë menjëherë në ciklin, pavarësisht gjendjes së tij, ku është kryer operacioni prodhim * = i (kjo është e njëjtë me prodhimin = prodhim * 1). Më pas e shtojmë numëruesin. Pas rritjes, ai ka vlerën 2. Dhe në fund kontrollojmë kushtin, nëse vlera e numëruesit është më e vogël ose e barabartë me 10, atëherë kalojmë në përsëritjen tjetër të ciklit, përndryshe dalim nga cikli dhe lëvizim. në.

Për lak

Siç shkrova më lart, cikli for është mjaft i zakonshëm, kështu që duhet ta dini shumë mirë.

Për sintaksën e ciklit tjetër:


Për një kuptim më të mirë, le të zgjidhim një problem të thjeshtë. Le të themi se duhet të llogarisim shumën e numrave nga 1 në 1000 duke përdorur një cikli for.

Var shuma = 0; për (var i = 1; i

E ruajmë dokumentin, e hapim në një shfletues dhe shohim që rezultati është 500500.

Komentoni! Nëse ka vetëm një deklaratë në lak, atëherë mbajtëset kaçurrelë janë opsionale.

Për demonstrim do të shfaqim në ekran 5 herë, disa rreshta, për shembull "Përshëndetje!".

Për (var i = 1; i

Komentoni! Pas ekzekutimit të ciklit në ndryshoren i, vlera e fundit mbetet.

Tani le ta zgjidhim problemin pak më të vështirë, për shembull, duhet të shfaqim vargun "Përshëndetje" 100 herë. Dhe në mënyrë që e gjithë kjo të mos shfaqet në një rresht, atëherë pas çdo përsëritje të 10-të, ne do të shkojmë në një linjë të re. Dhe në fund do të shfaqim vlerën e ndryshores i.

Për (var i = 1; i<= 100; i++){ document.write("привет!"); if(i % 10 == 0)  document.write("
");) dokument.shkruaj ("

Variabla i = "+ i +"

"); // i = 101

Loop Foreach zakonisht përdoret për të përsëritur mbi objekte dhe vargje. Prandaj, unë do të flas për të në artikullin që përshkruan punën me vargje.

Deklarata e thyerjesështë projektuar për të dalë me forcë nga laku.

Deklarata në vazhdim ju lejon të ndërprisni përsëritjen aktuale të lakut dhe të shkoni te tjetra.

Për një kuptim më të mirë, do të zgjidhim edhe një problem të thjeshtë. Le të themi se duam të llogarisim shumën e numrave tek nga 1 në 20. Dhe kur të arrijmë në përsëritjen e 15-të, do të dalim nga cikli.

Var shuma = 0; për (var i = 1; i<= 20; i++){ //Пропускаем текущею итерацию цикла if(i % 2 == 0) continue; summa += i; //Выходим совсем из цикла. if(i == 15) break; document.write(i + ". Итерация
");) dokument.shkruaj ("

përmbledhje= "+ përmbledhje +"

"); // përmbledhje = 64

Ne e ruajmë dokumentin, e hapim atë në një shfletues dhe shikojmë rezultatin.

Për praktikë, provoni të ndryshoni skriptin e shkruar në mënyrë që të llogarisë shumën e numrave çift.

Kjo përfundon këtë artikull. Tani ju e dini sintaksa e while, do-while, për sythe dhe si të punohet me to... Gjithashtu u takuan thyejnë dhe vazhdojnë deklaratat.

Ciklet

Për të kuptuar efektin e deklaratave të kushtëzuara, ne propozuam t'i përfaqësojmë ato si degëzime në rrugën përgjatë së cilës lëviz përkthyesi JavaScript. Loops mund të mendohen si një përmbysje në rrugë që e bën përkthyesin të kalojë nëpër të njëjtën pjesë të kodit pa pushim.

Ekzistojnë katër unaza në JavaScript: while, do / while, for, dhe for / in. Secila prej tyre është e dedikuar për një nga nënseksionet e mëposhtme. Një nga përdorimet e zakonshme të sytheve është kalimi i elementeve të grupit.

Ndërsa lak

Deklarata if është deklarata bazë e kushtëzuar në JavaScript, dhe cikli while mund të mendohet si cikli bazë JavaScript. Ai ka sintaksën e mëposhtme:

ndërsa (shprehje) (deklaratë)

Cikli while fillon duke vlerësuar një shprehje. Nëse kjo shprehje është e rreme, interpretuesi anashkalon udhëzimin që përbën trupin e ciklit dhe kalon në udhëzimin tjetër në program. Nëse shprehja vlerësohet në një vlerë të vërtetë, atëherë deklarata që formon trupin e ciklit ekzekutohet, atëherë kontrolli transferohet në fillim të ciklit dhe shprehja vlerësohet përsëri. Me fjalë të tjera, interpretuesi ekzekuton udhëzimet e trupit të ciklit pa pushim për sa kohë që shprehja është e vërtetë. Vini re se është e mundur të krijoni një lak të pafund duke përdorur sintaksën while (të vërtetë).

Zakonisht nuk dëshironi që përkthyesi JavaScript të kryejë të njëjtin veprim pa pushim. Pothuajse në çdo cikli, me çdo përsëritje të ciklit, një ose më shumë variabla ndryshojnë vlerat e tyre. Ndërsa ndryshorja ndryshon, veprimet që kryen deklarata mund të ndryshojnë sa herë që qarku kalon.

Përveç kësaj, nëse një ndryshore (ose ndryshore) e ndryshueshme është e pranishme në një shprehje, vlera e shprehjes mund të ndryshojë me çdo përsëritje të ciklit. Kjo është e rëndësishme sepse përndryshe, shprehja vlera e së cilës ishte e vërtetë nuk do të ndryshojë kurrë dhe laku nuk do të përfundojë kurrë! Më poshtë është një shembull i një cikli while që printon numrat 0 deri në 9:

Var count = 0; ndërsa (numëro

Siç mund ta shihni, në fillim të numërimit të ndryshores i caktohet vlera 0, dhe më pas vlera e tij rritet sa herë që ekzekutohet trupi i ciklit. Pasi të jetë ekzekutuar cikli 10 herë, shprehja do të kthehet false (d.m.th., variabla e numërimit nuk është më pak se 10), deklarata while do të përfundojë dhe interpretuesi do të kalojë në deklaratën tjetër në program. Shumica e sytheve kanë variabla numërues të ngjashëm me numërimin. Variablat me emrin i, j dhe k përdoren më shpesh si numërues të ciklit, megjithëse për ta bërë kodin e programit më të kuptueshëm, duhet t'u jepni numëruesve më shumë emra përshkrues.

Do / while lak

Një cikli do / while është shumë si një cikli while, me përjashtim të faktit që shprehja e ciklit testohet në fund, jo në fillim. Kjo do të thotë që trupi i lakut ekzekutohet gjithmonë të paktën një herë. Kjo deklaratë ka sintaksën e mëposhtme:

bëj (deklaratë) ndërsa (shprehje);

Cikli do / while përdoret më rrallë se cikli i kushëririt të tij while. Fakti është se në praktikë situata kur jeni i sigurt paraprakisht se do t'ju duhet të ekzekutoni trupin e lakut të paktën një herë është disi e pazakontë. Më poshtë është një shembull i përdorimit të një cikli do / while:

Funksioni printArray (a) (var len = a.length, i = 0; if (len == 0) console.log ("Empty array"); other (do (console.log (a [i]);) ndërsa (++ i

Ekzistojnë dy dallime midis një cikli do / while dhe një cikli të rregullt while. Së pari, një cikli do kërkon edhe fjalën kyçe do (për të shënuar fillimin e ciklit) dhe fjalën kyçe while (për të shënuar fundin e ciklit dhe për të specifikuar një kusht). Së dyti, ndryshe nga cikli while, cikli do përfundon me një pikëpresje. Cikli while nuk ka nevojë të përfundojë me një pikëpresje nëse trupi i lakut është i mbyllur në mbajtëse kaçurrelë.

Për lak

Një cikli for është një konstrukt looping që shpesh është më i përshtatshëm se një cikli while. Cikli for e bën të lehtë ndërtimin e sytheve që ndjekin një model të përbashkët për shumicën e sytheve. Shumica e sytheve kanë një lloj ndryshoreje kundër. Kjo variabël inicializohet përpara fillimit të ciklit dhe kontrollohet përpara çdo përsëritjeje. Së fundi, ndryshorja e numëruesit rritet ose modifikohet ndryshe në fund të trupit të lakut, pak përpara se ndryshorja të kontrollohet përsëri. Inicializimi, vlefshmëria dhe përditësimi janë tre operacione kyçe të kryera në një variabël loop. Deklarata for i bën këto tre hapa në mënyrë eksplicite pjesë të sintaksës së ciklit:

për (inicializimi; kontrolloni; rritje) (deklaratë)

Inicializimi, vlefshmëria dhe rritja janë tre shprehje (të ndara me pikëpresje) që janë përgjegjëse për inicializimin, vërtetimin dhe rritjen e një ndryshoreje të ciklit. Vendosja e tyre në rreshtin e parë të ciklit e bën më të lehtë të kuptosh se çfarë bën cikli for dhe e bën më të lehtë harrimin e inicializimit ose rritjes së ndryshores së ciklit.

Mënyra më e lehtë për të shpjeguar se si funksionon një cikli for është duke treguar ekuivalentin e tij while:

inicializimi; ndërsa (kontrollo) (deklaratë; rritje;)

Me fjalë të tjera, shprehja e inicializimit vlerësohet një herë përpara fillimit të ciklit. Kjo shprehje është zakonisht një shprehje me efekte anësore (zakonisht një detyrë). JavaScript gjithashtu lejon që shprehja e inicializimit të jetë një deklaratë e deklarimit var, kështu që ju mund të deklaroni dhe inicializoni një numërues të ciklit në të njëjtën kohë.

Shprehja e kontrollit vlerësohet para çdo përsëritjeje dhe përcakton nëse trupi i lakut është ekzekutuar. Nëse testi vlerësohet në një vlerë të vërtetë, atëherë ekzekutohet deklarata që është trupi i lakut. Në fund të ciklit vlerësohet rritja e shprehjes. Që kjo shprehje të jetë kuptimplotë, duhet të jetë një shprehje me efekt anësor. Kjo zakonisht është ose një shprehje caktimi ose një shprehje duke përdorur operatorin ++ ose -.

Ju gjithashtu mund të printoni numrat 0 deri në 9 duke përdorur një cikli for, siç tregohet më poshtë, në krahasim me ciklin ekuivalent while të treguar në shembullin e mëparshëm:

Për (numërimi var = 0; numërimi

Natyrisht, unazat mund të jenë dukshëm më komplekse se këta shembuj të thjeshtë, dhe ndonjëherë disa variabla ndryshojnë në çdo përsëritje të ciklit. Kjo situatë është rasti i vetëm në JavaScript ku operatori me presje përdoret shpesh - ai ju lejon të kombinoni shprehje të shumëfishta inicializimi dhe rritjeje në një shprehje të vetme të përshtatshme për t'u përdorur në një cikli for:

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

Për / në lak

Cikli for / in përdor fjalën kyçe for, por është thelbësisht i ndryshëm nga një cikli i rregullt for. Cikli for / in ka sintaksën e mëposhtme:

për (ndryshueshme në objekt) (deklaratë)

Si variabël, ju zakonisht përdorni emrin e një ndryshoreje këtu, por mund të përdorni deklaratën var për të deklaruar një ndryshore të vetme në të njëjtën mënyrë. Parametri i objektit është një shprehje që kthen një objekt. Dhe si zakonisht, një instruksion është një udhëzim ose një bllok udhëzimesh që formojnë trupin e një laku.

Për të përshkuar elementët e një grupi, është e natyrshme të përdoret një cikli i rregullt for:

Var arr =; për (var i = 0; i

Deklarata for / in gjithashtu ju lejon të përshkoni vetitë e një objekti:

// Krijo një objekt të ri var obj = (emri: "Alex", fjalëkalimi: "12345"); for (var i në obj) (// Shtypni vlerën e çdo vetie të konsolës së objektit.log (obj [i]);)

Për të ekzekutuar një deklaratë for / in, interpretuesi JavaScript së pari vlerëson objektin e shprehjes. Nëse kthehet null ose i papërcaktuar, përkthyesi e kalon ciklin dhe kalon në deklaratën tjetër. Nëse shprehja kthen një vlerë të thjeshtë, ajo konvertohet në një objekt ekuivalent mbështjellës. Përndryshe, shprehja kthen një objekt. Më pas interpretuesi kryen një përsëritje të ciklit për secilën veti të numëruar të objektit. Përpara çdo përsëritjeje, interpretuesi vlerëson vlerën e shprehjes, e ruan atë në një variabël dhe i cakton asaj një emër pronësie (vlera e vargut).

Një lak është një udhëzim kontrolli që ju lejon të përsërisni ekzekutimin e kodit të programit një numër të caktuar herë. Çdo ekzekutim individual i udhëzimeve në trupin e lakut quhet përsëritje.

Ndërsa lak

Sintaksa për ciklin while është:

Shprehja në kllapa quhet kushti i përmbushjes cikël ose shkurtimisht një gjendje. Vlera e shprehjes vlerësohet së pari. Vlera që rezulton, nëse është e nevojshme, konvertohet në mënyrë implicite në një lloj boolean. Nëse shprehja vlerësohet në true, atëherë deklarata e vendosur në trupin e ciklit ekzekutohet, atëherë kontrolli transferohet në fillim të ciklit dhe gjendja vlerësohet përsëri. Nëse shprehja vlerësohet në false, interpretuesi del nga cikli dhe vazhdon të ekzekutojë deklaratën pas ciklit. Kështu, interpretuesi përsëri dhe përsëri ekzekuton kodin e vendosur në trupin e lakut, ndërsa kushti mbetet i vërtetë:

Var i = 0; nderkohe une< 3) { // Выполнять код, пока значение переменной i меньше 3 alert("i: " + i); i++; // Увеличиваем значение переменной i }

Do-while lak

Sintaksa për ciklin do-while është:

Një cikli do-while është i ngjashëm me një cikli while, me përjashtim të faktit që gjendja e ciklit kontrollohet pas përsëritjes së parë, jo para tij, dhe cikli përfundon me një pikëpresje. Meqenëse kushti kontrollohet pas përsëritjes, kodi në trupin e ciklit do-while ekzekutohet gjithmonë të paktën një herë:

Var count = 0; bëj (dokument.shkruaj (numëroj + ""); numëro ++;) ndërsa (numëroj< 5); Попробовать »

Ky lak mund të jetë i dobishëm kur kodi në trupin e ciklit duhet të ekzekutohet të paktën një herë, pavarësisht nga kushti i ekzekutimit.

Për lak

Sintaksa për një cikli for është:

Cikli for përmban tre shprehje, të ndara me pikëpresje. Këto tre shprehje ekzekutohen në rendin e mëposhtëm:

  1. Shprehja e parë vlerësohet gjithmonë vetëm një herë, përpara përsëritjes së parë. Prandaj, zakonisht shprehja e parë është përkufizimi i një ndryshoreje, e cila përdoret në kushtin e ekzekutimit të ciklit si numërues.
  2. Shprehja e dytë përcakton kushtin për ekzekutimin e ciklit. Ai vlerësohet para çdo përsëritjeje dhe përcakton nëse trupi i lakut do të ekzekutohet. Nëse shprehja vlerësohet në një vlerë të vërtetë, kodi në trupin e ciklit ekzekutohet. Nëse kthehet false, ekzekutimi i ciklit përfundon dhe kontrolli kalon në instruksionin tjetër pas lakut. Nëse gjatë kontrollit të parë të gjendjes, rezulton të jetë false, kodi në trupin e lakut nuk do të ekzekutohet as edhe një herë.
  3. Pas çdo përsëritjeje vlerësohet shprehja e tretë. Zakonisht përdoret për të ndryshuar vlerën e një ndryshoreje që përdoret për të testuar gjendjen e një cikli.

Një shembull i një cikli for:

Për (numërimi var = 0; numërimi< 5; count++) document.write(count + " "); Попробовать »

Siç mund ta shihni nga shembulli, cikli for, ndryshe nga unazat e tjera, ju lejon të gruponi kodin e lidhur me ciklin në një vend.

Mund të mungojë ndonjë nga shprehjet në ciklin for, por duhet të jenë të pranishme vetë pikëpresje, përndryshe do të ketë një gabim sintaksor. Nëse nuk ka shprehje të dytë, cikli do të funksionojë për një kohë të pacaktuar.

Var i = 0; për (; i< 4; i++) ... var i = 0; for (; i < 4;) ... for (var i = 1; /* нет условия */ ; i++) ... // Это эквивалентно следующему коду for (var i = 1; true; i++) ...

Në vend të një shprehjeje të vetme, mund të specifikoni shprehje të shumta, të ndara nga operatori me presje.

// nuk do të ekzekutohet, pasi shprehja e fundit në testin e gjendjes është false për (i = 1; i< 4, false; i++) ... for (var i = 1, j = 5; i <= 5; i++, j--) document.write(i + " " + j +"
"); Provo"

Për-në lak

Cikli for-in përdoret për të përsëritur rastësisht mbi vetitë e numëruara të një objekti dhe ka sintaksën e mëposhtme:

Për deklaratën (ndryshueshme në objekt);

Në të majtë të fjalës kyçe in është emri i një ndryshoreje, së cilës i caktohet emri i njërës prej vetive të objektit si varg përpara fillimit të çdo përsëritjeje të ciklit. Në të djathtë të fjalës kyçe in është një objekt, vetitë e të cilit do të përsëriten nga cikli. Cikli do të funksionojë derisa të gjitha veçoritë e disponueshme të kalohen. Nëse ndryshorja që përfaqëson objektin është e pavlefshme ose e papërcaktuar, cikli nuk do të ekzekutohet kurrë:

Var obj = (x: 5, y: 10); për (var prop në obj) (alarm (prop);)

Për të mbajtur kodin e lidhur me ciklin në një vend, mund të deklaroni një variabël në ciklin for-in. Prandaj, shprehja përpara fjalës kyçe in është zakonisht deklarimi i një ndryshoreje të cilës do t'i caktohen emrat e vetive.

Sythet janë krijuar për të ekzekutuar të njëjtat udhëzime pa pushim.

Ekzistojnë 4 lloje sythe në JavaScript:

  • Për lak. Ky lak përdoret kur dihet numri i saktë i përsëritjeve të të njëjtave udhëzime.
  • Ndërsa lak. Ai është krijuar për të ekzekutuar të njëjtat udhëzime për sa kohë që një kusht i caktuar është i vërtetë.
  • Do ... while loop. Ky cikli është i ngjashëm me ciklin while, por gjendja kontrollohet jo përpara ekzekutimit të deklaratave të përsëritura, por pas tyre. Kështu, ndryshe nga cikli while, edhe nëse kushti fillimisht është fals, deklaratat do të ekzekutohen të paktën një herë.
  • Për ... në lak. Përdoret kur ju duhet të përsërisni mbi të gjitha vetitë në një objekt ose çdo element në një grup.

Për lak

Sintaksa për një cikli for është:

Për (inicializimi; kushti; shprehja përfundimtare) (/ * trupi i lakut * /)

  • inicializimi është një shprehje që ekzekutohet një herë përpara ekzekutimit të ciklit; zakonisht përdoret për të inicializuar një numërues;
  • kusht është një shprehje e vërteta e së cilës kontrollohet përpara çdo përsëritjeje; nëse shprehja vlerësohet në true, atëherë kryhet përsëritja, përndryshe cikli for del;
  • shprehja përfundimtareështë një shprehje që ekzekutohet në fund të çdo përsëritjeje; zakonisht përdoret për të ndryshuar banakun;
  • trupi i lakut - udhëzimet që duhet të përsëriten.

Le të shqyrtojmë një shembull të një cikli që do të printojë numrat nga 1 në 9 në tastierë:

Var i; // për ciklin nga 1 në 9, me një hap prej 1 për (i = 1; i<= 9; i++) { console.log(i); }

Në këtë shembull:

  • inicializimi: i = 1 (caktimi i i në 1);
  • Kushti i përfundimit të lakut: i<= 9 (значение переменной i не меньше 9);
  • shprehja që do të ekzekutohet në fund të çdo përsëritjeje: i ++ (duke rritur vlerën e ndryshores i me 1);
  • udhëzimet për të ndjekur: console.log (i) (shtypja e vlerës së numëruesit në tastierë).

Pjesë opsionale të lakut for

Në for, blloku i inicializimit është opsional.

Var i = 1; // Loop for for (; i<= 9; i++) { console.log(i); }

Blloku i kushteve në ciklin for është gjithashtu opsional. Pa një kusht, cikli do të ekzekutohet një numër i pafundëm herë. Në këtë rast, për ta ndërprerë atë (daljen nga cikli), duhet të përdorni deklaratën break.

Var i; // Loop for for (i = 1;; i ++) (nëse (i> 9) (// kushti për të ndërprerë ndërprerjen e ciklit;) konsol.log (i);)

Përfundimi për shprehje është gjithashtu fakultativ. Numëruesi i ciklit në këtë rast, për shembull, mund të ndryshohet në trup.

Var i; // Loop for for (i = 1; i<= 9 ;) { console.log(i); i++; }

Ju mund të hiqni 3 shprehje fare:

Var i = 1; // Loop for for (;;) (if (i> 9) (break;) console.log (i); i ++;)

Një shprehje boshe (;) mund të përdoret si trupi i një cikli for.

Për shembull:

Var arrA =, arrB =; për (i = 0; i< arrA.length; arrB[i] = arrA / 2) ; console.log(arrB); //

Shembuj të përdorimit për

Përdorimi i një cikli for për të përsëritur mbi elementët e një grupi:

Var arr =, // vargu i = 0, // numëruesi lenArr = arr.gjatësia; // gjatësia e vargut për (i; i< lenArr; i++) { console.log(arr[i]); }

Thyejeni dhe vazhdoni deklaratat

Përveç kësaj, deklaratat speciale të pushimit dhe vazhdimit mund të përdoren brenda trupit të sytheve.

Deklarata break synon të përfundojë ekzekutimin e ciklit. ato. ai del nga cikli aktual dhe e transferon kontrollin në instruksionin që ndjek atë.

Deklarata e vazhdimit ndërpret ekzekutimin e përsëritjes aktuale të ciklit dhe vazhdon në atë tjetër.

Një shembull në të cilin ne do të shfaqim numra tek nga 1 në 11 në tastierë:

Var i; për (i = 1; i & lt = 11; i ++) (// nëse numri në ndryshoren i është çift, atëherë shkoni te përsëritja tjetër nëse (i% 2 === 0) (vazhdim;) // printoni vlerën e ndryshores i në konsolën e konsolës.log (i);) // 1, 3, 5, 7, 9, 11

Loop with while parakusht

Cikli while ekzekuton të njëjtat instruksione (trupi i lakut) për sa kohë që disa kushte janë të vërteta. Vlefshmëria e kushtit kontrollohet para çdo ekzekutimi të trupit të ciklit. Nëse kushti është false përpara përsëritjes së parë, atëherë cikli nuk ekzekutohet kurrë.

// deklarimi i një ndryshoreje a dhe caktimi i vlerës 0 var a = 0; // cikli ndërsa me kusht a

Loop me postcondition do ... ndërsa

Cikli do ... while, ashtu si cikli while, ekzekuton të njëjtat instruksione (trupi i ciklit) për sa kohë që një kusht i caktuar është i vërtetë. Por ndryshe nga cikli while, cikli do ... while kontrollon gjendjen pas çdo ekzekutimi të trupit të ciklit. Edhe nëse kushti është fillimisht false, atëherë trupi i ciklit do të ekzekutohet përsëri një herë (pasi kushti kontrollohet pasi të ekzekutohet trupi i ciklit).

// deklarimi i një ndryshoreje a dhe caktimi i vlerës 0 var a = 0; // bëj ... ndërsa lak me një kusht

Siç u përmend më lart, cikli for ... në përdoret për të përsëritur mbi elementët e grupit dhe vetitë e objektit. Në këtë mësim, ne do të shikojmë vetëm sintaksën e përgjithshme të for ... in loop dhe do ta njohim më në detaje në mësimet e ardhshme.

Parimi i for ... në ciklin është se ndryshorja x merr të gjithë emrat e vetive të objektit y ose indekset e grupit y. Në këtë mënyrë, në çdo përsëritje, ju keni akses në një veçori të objektit ose element të grupit.

Sythet janë një mënyrë e thjeshtë për të bërë një veprim shumë herë. Ky kapitull i Udhëzuesit JavaScript ju prezanton me operatorët e ndryshëm të disponueshëm në JavaScript.

Ju mund të mendoni për një lak si një version i kompjuterizuar i një loje 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:

Var hap; 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 një veprim disa herë (mos harroni për kohën zero të përsëritjes, numërimi në grup fillon nga 0). Unazat me strukturë të ndryshme ofrojnë metoda të ndryshme për përcaktimin e fillimit dhe përfundimit të një cikli. Për detyra të ndryshme programimi, ekzistojnë operatorë loop, me ndihmën e të cilëve ato zgjidhen shumë më lehtë.

Operatorët për organizimin e sytheve në JavaScript:

Për lak

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

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

Kur ekzekutohet, ndodh si më poshtë:

  1. Filloni shprehjen, 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, përdorni bllokun e shprehjeve (...) për të grupuar shprehjet.
  4. Hapi përditësohet, nëse ka, dhe më pas kontrolli kthehet në hapin 2.

Shembull

Funksioni tjetër ka një lak 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 e rrit i me një pas çdo cikli.

Bëj ... while loop

Cikli do ... while përsëritet për sa kohë që kushti i specifikuar është i vërtetë. Deklarata do ... while është:

Bëj shprehje while (kusht);

shprehjet ekzekutohen për aq kohë sa kushti është i vërtetë. Për të përdorur shprehje të shumta, përdorni një shprehje blloku (...) 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 ... while.

Shembull

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

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

Ndërsa lak

Cikli while ekzekuton shprehjet për sa kohë që 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 "true" përpara se të ekzekutohen shprehjet në lak. Nëse kushti është i vërtetë, shprehjet ekzekutohen dhe më pas gjendja kontrollohet përsëri. Nëse kushti është fals, ekzekutimi pezullohet dhe kontrolli i kalon shprehjes pas kohës.

Për të përdorur shprehje të shumta, përdorni bllokun e shprehjeve (...) 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:

Var n = 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 pafund. Sigurohuni që gjendja e ciklit të përfundojë të jetë false; përndryshe, cikli nuk do të ndërpritet kurrë. Shprehjet në ciklin e ardhshëm while do të ekzekutohen përgjithmonë sepse kushti nuk do të jetë kurrë i rremë:

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

Etiketa

Një etiketë është një operator identifikues që ju lejon të referoheni në një vend në programin tuaj. Për shembull, mund të përdorni një etiketë për të treguar një cikli, dhe më pas përdorni një deklaratë pushimi ose vazhdimi për të treguar nëse programi duhet të prishë ose të vazhdojë të ekzekutojë ciklin.

Sintaksa për etiketën është si më poshtë:

Etiketa: operator

Kuptimi etiketa 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, marka markLoop tregon një lak ndërsa.

MarkLoop: ndërsa (theMark == e vërtetë) (bëni Diçka ();)

thyej

Përdorni deklaratën e ndërprerjes për të ndërprerë një lak, kontroll të ndërrimit ose në kombinim me një deklaratë etikete.

  • Kur përdorni ndërprerjen pa etiketë, ai ndërpritet ndërsa, do-ndërsa, dhe për sythe, 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ë si kjo:

  1. pushim;
  2. thyej Etiketa;

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

Shembull 1

Shembulli i mëposhtëm përsëritet mbi elementët 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 një etikete

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

vazhdojnë

Deklarata vazhdim përdoret për të ecur përpara pas një kohe, do-while, për ose për të kërcyer te një etiketë.

  • Kur përdorni vazhdimin pa etiketë, ai ndërpret përsëritjen aktuale të ciklit while, do-while dhe for dhe vazhdon me përsëritjen tjetër të ciklit. Ndryshe nga break, vazhdimi nuk e ndërpret plotësisht ekzekutimin e lakut. 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ë aktivizohet kur i është 3. Pra, n merr vlerat 1, 3, 7 dhe 12.

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

Shembulli 2

Shprehja e shënuar checkiandj përmban shprehjen e shënuar kontrolloj... Kur haset vazhdimi, programi ndërpret përsëritjen aktuale. kontrolloj dhe fillon përsëritjen tjetër. Sa herë që takohemi me vazhdimin, kontrolloj kalon në përsëritjen tjetër ndërsa kushti kthehet false. Kur kthehet false, pasi të jetë llogaritur pjesa e mbetur e pjesëtimit checkiandj, checkiandj kalon në përsëritjen tjetër ndërsa gjendja e tij kthehet false. Kur kthehet false, programi vazhdon ekzekutimin në shprehjen pas checkiandj.

Nëse vazhdoni ka një etiketë 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 + "madje.");) Console.log ("i = "+ i); console.log ("j = + j); )

për ... në

For ... në deklaratë përsëritet mbi të gjitha vetitë e numëruara të objektit. JavaScript do të ekzekutojë shprehjet e specifikuara për çdo pronë individuale. Për ... në ciklin duket si kjo:

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

Shembull

Funksioni tjetër 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 dhe vlerat e vetive.

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, Rezultati do:

Makina.make = makinë Ford.model = Mustang

Shembulli nr. 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 (`$ (kyç) = $ (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 mbi 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 bashkëveproni me vargje, pasi 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 ( e ndryshueshme e Objekt) { shprehjet}

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

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

Artikujt kryesorë të lidhur