Izlazni elementi petlje nakon određenog vremena javascript. Petlje u JavaScriptu. nastavak i prekid izjava

Petlja je kontrolna instrukcija koja vam omogućava da ponovite izvršavanje programskog koda određeni broj puta. Svako pojedinačno izvršenje instrukcija u tijelu petlje naziva se iteracija.

while petlja

while sintaksa petlje:

Izraz u zagradama se zove uslov ispunjenja ciklus ili kratko stanje. Prvo se vrednuje vrednost izraza. Rezultirajuća vrijednost, ako je potrebno, se implicitno pretvara u Boolean tip. Ako je rezultat evaluacije izraza istinit , tada se izvršava naredba koja se nalazi u tijelu petlje, zatim se kontrola prenosi na početak petlje i uvjet se ponovo procjenjuje. Ako se izraz procijeni na false, tumač završava petlju i nastavlja s izvršavanjem naredbe koja slijedi nakon petlje. Dakle, interpretator izvršava kod u tijelu petlje iznova i iznova, sve dok uvjet ostaje istinit:

Petlje mogu izvršiti blok koda više puta. Petlje su zgodne ako želite da pokrećete isti kod iznova i iznova, svaki put s drugom vrijednošću. Često se to dešava kada radite sa nizovima. Naredba 1 se izvršava prije početka petlje. Naredba 2 definira uvjet za pokretanje petlje.

Prekidanje i ponovno pokretanje ciklusa

Naredba 3 se izvršava svaki put nakon što se petlja izvrši. Iz gornjeg primjera možete pročitati. Naredba 1 postavlja varijablu prije početka petlje. Naredba 3 povećava vrijednost svaki put kada se blok koda izvrši u petlji. Obično ćete koristiti naredbu 1 za inicijalizaciju varijable koja se koristi u petlji.

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

uradi-while petlja

Sintaksa do-while petlje:


do-while petlja je kao while petlja, osim što se uvjet izvršavanja petlje provjerava nakon prve iteracije, a ne prije nje, a petlja se završava tačkom i zarezom. Pošto se uslov provjerava nakon iteracije, kod u tijelu do-while petlje se uvijek izvršava barem jednom:

Možete pokrenuti više vrijednosti u iskazu 1. I možete izostaviti naredbu 1. Često se izraz 2 koristi za procjenu početnog stanja varijable. Ako izostavite naredbu 2, morate osigurati prekid unutar petlje. U suprotnom, ciklus se nikada neće završiti. Pročitajte o pauzama u narednom poglavlju ove lekcije.

Upotreba naljepnica za kontrolu protoka

Često izraz 3 povećava vrijednost početne varijable. Izjava 3 može učiniti bilo šta poput negativnog priraštaja, pozitivnog priraštaja ili bilo čega drugog. Može doći do situacije u kojoj morate izaći iz petlje prije nego što stignete do dna. Takođe može doći do situacije u kojoj želite da preskočite deo svog kodnog bloka i započnete sledeću iteraciju petlje. Ovi izrazi se koriste za trenutni izlazak iz bilo koje petlje ili za pokretanje sljedeće iteracije bilo koje petlje, respektivno. Oznaka je jednostavno identifikator iza kojeg slijedi dvotočka koja se primjenjuje na izraz ili blok koda.

var count = 0; do ( document.write(count + " "); count++; ) while(count< 5); Попробовать »

Ova petlja može biti korisna kada se kod u tijelu petlje mora izvršiti najmanje jednom, bez obzira na uvjet izvršenja.

za petlju

Za sintaksu petlje:


AT za petlju Postoje tri izraza odvojena tačkom i zarezom. Ova tri izraza imaju sljedeći redoslijed izvršavanja:

Funkcionalnost, još jedan odraz stvarnosti

Vidjet ćemo dva različita primjera da bismo razumjeli kako koristiti oznake break i continue. Bilješka. Također, između naziva oznake i pridružene petlje ne smije biti drugih izjava. Isprobajte sljedeća dva primjera za bolje razumijevanje prečica.

Kako radi for petlja

Petlja "for" je najkompaktniji oblik petlje. Uključuje sljedeća tri važna dijela. Ako je uslov tačan, tada će se izvršiti kod unutar petlje, inače će kontrola izaći iz petlje.

  • Inicijalizacija petlje gdje inicijaliziramo naš brojač početnom vrijednošću.
  • Inicijalizacijski izraz se izvršava prije početka petlje.
  • Testni slučaj koji će provjeriti da li je dato stanje istina ili ne.
  • Naredba iteracije u kojoj možete povećati ili smanjiti brojač.
Sva tri dijela možete staviti u isti red, razdvojene tačkom i zarezom.

  1. Prvi izraz se uvijek evaluira samo jednom - prije prve iteracije. Stoga je obično prvi izraz definicija varijable, koja se koristi kao brojač u uvjetu izvršavanja petlje.
  2. Drugi izraz definira uvjet za izvršavanje petlje. Procjenjuje se prije svake iteracije i određuje da li će se tijelo petlje izvršiti. Ako izraz dobije pravu vrijednost, izvršava se kod u tijelu petlje. Ako se vrati false, petlja se završava i kontrola prelazi na sljedeću instrukciju nakon petlje. Ako je uslov netačan prvi put kada se uvjet provjeri, kod u tijelu petlje se nikada neće izvršiti.
  3. Nakon svake iteracije, evaluira se treći izraz. Obično se koristi za promjenu vrijednosti varijable koja se koristi u testu petlje.

Za primjer petlje:

On pruža najbolje prakse za primenu ovih pristupa. Prije petlje, oznaka vam omogućava da prekinete ili nastavite tu petlju čak i unutar ugniježđene petlje. Svojstva se mogu ukloniti tokom iteracije. Iteracija preko parova svojstava objekta: Iteracija preko ključeva, koristite svaki ključ da dobijete odgovarajuću vrijednost.

  • Prije bloka, možete izaći iz tog bloka.
  • Tradicionalni način ponavljanja nizova.
  • Iterirajte ključeve svojstava, uključujući i naslijeđene.
  • Ne koristiti za nizove.
  • Iterira preko indeksa niza i ključeva svojstava.
  • Tako da će biti problema čim neko doda svojstvo u niz.
Rekli smo da kontrolne strukture kao što su petlje stvaraju složenost.

Za (broj var = 0; broj< 5; count++) document.write(count + " "); Попробовать »

Kao što možete vidjeti iz primjera, for petlja, za razliku od drugih petlji, omogućava vam da grupišete kod povezan s petljom na jednom mjestu.

Bilo koji od izraza u for petlji može nedostajati, ali same tačke i zareze moraju biti prisutne, inače će doći do sintaksičke greške. U nedostatku drugog izraza, petlja će se izvoditi neograničeno.

Petlja s preduvjetom

Ali do sada nismo vidjeli nikakve dokaze kako se to događa. Ali prvo, malo podešavanja. Napravit ćemo primjer funkcije i niz za rad. Dakle, imamo niz i želimo da označimo svaki unos. Imajte na umu da koristimo brojač da pratimo gdje se nalazimo, tj. moramo inicijalizirati ovaj brojač na nulu i povećavati ga svaki put oko petlje.

To je korisna konstrukcija jer sastavlja bilo koji obrazac brojača koji je na vrhu. Ali, vratimo se malo unazad i vidimo šta ovaj kod pokušava postići. Nismo mnogo zabrinuti za šalter. Ovaj obrazac da se nešto radi sa svakim elementom u nizu je prilično uobičajen. Svaki put oko petlje samo vam daje sljedeći element niza.

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

Umjesto jednog izraza, možete specificirati nekoliko izraza tako što ćete ih odvojiti operatorom zarezom.

// neće biti izvršen jer je posljednji izraz u provjeri uvjeta lažan za (i = 1; i< 4, false; i++) ... for (var i = 1, j = 5; i <= 5; i++, j--) document.write(i + " " + j +"
"); Pokušajte »

Imajte na umu da su brojač i poređenje nestali. Ne moramo čak ni da izvlačimo element iz niza. Eliminisali bismo kompleksnost. Naš kod možemo učiniti još sažetijim i izražajnijim, ali da vidimo kako, hajde da malo proširimo problem.

Šta ako imamo dva niza za oodelifikacija? Očigledno će ovo biti petlja za svaku. A kod koji radi bolji je od koda koji ne radi. Možemo ga refaktorirati da smanjimo dio ponavljanja. Ovo počinje da izgleda mnogo lepše, ali šta ako bismo imali još jednu funkciju koju bismo želeli da primenimo?

for-in petlja

Petlja for-in se koristi za nasumično ponavljanje nabrojanih svojstava objekta i ima sljedeću sintaksu:

For (varijabilna u objektu) iskaz;

Lijevo od ključne riječi in je ime varijable, kojem se kao niz dodjeljuje ime jednog od svojstava objekta prije svake iteracije petlje. Desno od ključne riječi in nalazi se objekt čija će svojstva biti iterirana u petlji. Petlja će se izvoditi dok se sva dostupna svojstva ne ponove. Ako je varijabla koja predstavlja objekt null ili nedefinirana, petlja se nikada neće izvršiti:

Učinimo to svejedno da ih vidimo jedno pored drugog. Ove dvije funkcije su vrlo slične. Šta ako bismo mogli da se apstrahujemo od ovog uzorka? Želimo: definirati niz i funkciju, mapirati svaki element iz niza u novi niz. Učinite to primjenom funkcije na svaki element. Mi zovemo ovu karticu. Funkcija prikaza za nizove izgleda ovako.

Petlja s preduvjetom while

Naravno, ovo se još uvijek ne oslobađa ciklusa u potpunosti. Ako želimo ovo, možemo napisati rekurzivnu verziju. Rekurzivno rješenje je prilično elegantno. Samo dva reda koda i vrlo malo uvlačenja. Ali generalno ne težimo da koristimo rekurzivnu verziju jer ima loše karakteristike performansi u starijim pretraživačima. A u stvari, mi uopće ne trebamo pisati kartu. Koristeći ovu metodu mape, naš kod sada izgleda ovako. Naravno, može doći do petlje, ali to više nije naša briga.

var obj = (x: 5, y: 10); for (var prop u obj) ( alert(prop); )

Da bi kod povezan s petljom ostao na jednom mjestu, dozvoljeno je deklarirati varijablu u for-in petlji. Stoga je izraz prije ključne riječi in obično deklaracija varijable kojoj će biti dodijeljena imena svojstava.

Petlje su jednostavan način da se nešto uradi više puta. Ovo poglavlje JavaScript vodiča će vas upoznati sa različitim operatorima dostupnim u JavaScriptu.

Ovaj kod je sada i sažet i ekspresivan. Ovo može izgledati kao glupo pitanje, ali razmislite o tome. Je li jednostavno zato što je kratko? Samo zato što je kod koncizan ne znači da mu nedostaje složenost. Jednostavno je jer dijelimo zabrinutost. Ove funkcije ne moraju znati ništa o nizovima ili petljama. Imamo još jednu funkciju, mapu, koja se bavi nizovima. Ali nije bitno koja se vrsta podataka nalazi u nizu, pa čak ni šta želite da uradite sa podacima. Jednostavno izvršava bilo koju funkciju u koju prođemo.

Umjesto da sve pomiješamo, odvojili smo obradu nizova od obrade niza. Zato ovaj kod možemo nazvati jednostavnim. Sada je karta vrlo zgodna, ali ne pokriva sve vrste petlji koje bi nam mogle zatrebati. Ovo je korisno ako želite da kreirate niz potpuno iste dužine kao i ulaz. Ali šta ako želimo da dodamo niz brojeva? Ili pronaći najkraći niz na listi? Ponekad želimo obraditi niz i svesti ga na jednu vrijednost.

Možete zamisliti ciklus kao kompjuterizovanu verziju igre u kojoj nekome kažete da napravi X koraka u jednom pravcu, a zatim Y koraka u drugom; na primjer, ideja igre "Idi 5 koraka na istok" može se izraziti kao petlja:

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

Postoji mnogo različitih vrsta petlji, ali sve one u suštini rade istu stvar: ponovite neku radnju nekoliko puta (ne zaboravite na nulto vrijeme ponavljanja, odbrojavanje u nizu počinje od 0). Petlje različite strukture nude različite načine za određivanje početka i kraja petlje. Za različite zadatke programiranja postoje vlastiti operatori petlje uz pomoć kojih se oni mnogo lakše rješavaju.

Recimo da imamo niz objekata heroja. Željeli bismo pronaći najjačeg heroja. Sve što je rečeno, ovaj kod i nije tako loš. Zaobići ćemo petlju prateći najjačeg heroja do sada najjačeg. Da vidimo sliku, zamislimo da smo i mi htjeli pronaći ukupnu snagu svih heroja.

U oba primjera imamo radnu varijablu koju inicijaliziramo prije pokretanja petlje. Zatim, svaki put oko petlje, obrađujemo jedan element iz niza i ažuriramo radnu varijablu. Da bi crtež petlje bio još jasniji, razmotrit ćemo unutrašnjost petlji u funkcijama. Također ćemo preimenovati varijable kako bismo istakli sličnosti.

Operatori za organiziranje petlji u JavaScriptu.