For, While ja Do While LOOP sisse JavaSkript koos näitega

⚡ Nutikas kokkuvõte

For, While ja Do While tsüklid on sisse lülitatud JavaSkript kordab lauseplokki ilma koodi dubleerimata. See artikkel selgitab iga süntaksit, näitab käivitatavaid näiteid oodatava väljundiga, lisab for-in ja for-of vormid ning käsitleb katkestuse, jätkamise ja lõpmatu tsükli vältimist.

  • 🔁 Põhieesmärk: Tsükkel täidab samu lauseid korduvalt fikseeritud arvu kordamiste jooksul või seni, kuni seatud tingimus jääb tõeks.
  • 🔢 tsükli jaoks: Kolm avaldist päises käsitlevad initsialiseerimist, väljumistesti ja uuendamist, mis sobib teadaoleva iteratsioonide arvuga.
  • samal ajal kui tsükkel: Tingimust testitakse enne iga käivitust, seega ei pruugi keha kunagi käivituda, kui tingimus algab vääralt.
  • 1️⃣ tee…samas kui tsükkel: Keha jookseb alati vähemalt korra, sest seisundit hinnatakse pärast esimest läbimist.
  • 🔑 jaoks…tsüklis: Käib läbi objekti võtmed, tagastades omaduste nimed, mitte väärtused.
  • 📦 ... silmuse jaoks: Itereerib massiivide, stringide, kaartide ja muude itereeritavate objektide väärtuste üle.
  • Voolu juhtimine: BREAK käsk väljub tsüklist koheselt, samas kui continue käsk hüppab järgmise iteratsiooni juurde.

While ja Do While tsükli puhul JavaScript

Mis on silmus? JavaSkript?

Silmused on kasulikud, kui peate täitma samu koodiridu korduvalt, teatud arv kordi või seni, kuni konkreetne tingimus on tõene. Oletame, et soovite oma veebilehel 100 korda tippida "Tere" sõnumi. Loomulikult peate sama rea ​​100 korda kopeerima ja kleepima. Selle asemel, kui kasutate silmuseid, saate selle ülesande täita vaid 3 või 4 reaga.

Iga tsükkel koosneb samadest kolmest osast, olenemata süntaksi välimusest: algväärtus, tingimus, mis otsustab, kas järgmine etapp käivitatakse, ja uuendus, mis liigutab tsükli väljumise suunas. Allolev diagramm näitab seda korduvat tsüklit.

Kasutage Loops in Javascript

Erinevat tüüpi silmused JavaScript

Seal on peamiselt nelja tüüpi silmuseid JavaScript.

  1. silmuse jaoks
  2. for/in tsüklis
  3. samas silmus
  4. do...when loop

Kaasaegne JavaSkript lisab väärtuste otse itereerimiseks tsükli for…of, seega on praktikas saadaval viis vormi. Allolev tabel näitab, millist antud olukorras kasutada.

Silmus Seisukord kontrollitud Minimaalsed hukkamised Kõige paremini kasutatav
eest Enne iga läbimist 0 Teadaolev arv kordusi
kuigi Enne iga läbimist 0 Tundmatu arv, mida juhib tingimus
tee…samal ajal Pärast iga läbimist 1 Menüüd ja viibad, mis peavad käivituma üks kord
jaoks… sisse Enne iga läbimist 0 Objekti võtmete lugemine
... jaoks Enne iga läbimist 0 Massiivi või stringi väärtuste lugemine

silmuse jaoks

süntaksit:

for(statement1; statement2; statment3)
{
lines of code to be executed
}
  1. Lause1 käivitatakse esimesena, isegi enne loo käivitamistping kood. Seega kasutatakse seda lauset tavaliselt tsükli sees kasutatavatele muutujatele väärtuste määramiseks.
  2. Avaldus2 on tsükli täitmise tingimus.
  3. Lause3 täidetakse iga kord pärast loo käsku.ping kood käivitatakse.

Proovige seda ise:

<html>
<head>
	<script type="text/javascript">
		var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth");
		document.write("<b>Using for loops </b><br />");
		for (i=0;i<students.length;i++)
		{
		document.write(students[i] + "<br />");
		}
	</script>
</head>
<body>
</body>
</html>

Väljund:

Using for loops
John
Ann
Aaron
Edwin
Elizabeth

Loendur algab nullist, kuna esimene indeks massiivi on null ja tingimus kasutab students.length funktsiooni, nii et tsükkel kohandub automaatselt nimede lisamisel või eemaldamisel.

samas silmus

süntaksit:

while(condition)
{
lines of code to be executed
}

"While loop" käivitatakse seni, kuni määratud tingimus on tõene. While-tsükli sisse peaksite lisama lause, mis tsükli mingil hetkel lõpetab. Vastasel juhul ei lõpe teie tsükkel kunagi ja teie brauser võib kokku kukkuda.

Proovige seda ise:

<html>
<head>
	<script type="text/javascript">
		document.write("<b>Using while loops </b><br />");
		var i = 0, j = 1, k;
		document.write("Fibonacci series less than 40<br />");
		while(i<40)
		{
			document.write(i + "<br />");
			k = i+j;
			i = j;
			j = k;
		}
	</script>
</head>
<body>
</body>
</html>

Väljund:

Using while loops
Fibonacci series less than 40
0
1
1
2
3
5
8
13
21
34

⚠️ Hoiatus: While-tsükkel, mille tingimus ei muutu kunagi vääraks, külmutab brauseri vahekaardi. Veenduge alati, et mõni muutuja tsükli sisus liigutab tingimust väära suunas ja kasutage turvaloendurit, kui väljumine sõltub välistest andmetest.

do...when loop

süntaksit:

do
{
block of code to be executed
} while (condition)

„Do…while“ tsükkel on väga sarnane „while“ tsükliga. Ainus erinevus seisneb selles, et „do…while“ tsüklis käivitatakse koodiplokk üks kord isegi enne tingimuse kontrollimist.

Proovige seda ise:

<html>
<head>
	<script type="text/javascript">
		document.write("<b>Using do...while loops </b><br />");
		var i = 2;
		document.write("Even numbers less than 20<br />");
		do
		{
			document.write(i + "<br />");
			i = i + 2;
		}while(i<20)
	</script>
</head>
<body>
</body>
</html>

Väljund:

Using do...while loops
Even numbers less than 20
2
4
6
8
10
12
14
16
18

Erinevus ilmneb siis, kui tingimus on algusest peale väär. While-tsükkel ei prindi midagi, samas kui do…while-tsükkel prindib enne stopp-käsku ikkagi ühe rea.ping.

jaoks…tsüklis

Tsükkel for…in läbib objekti loetletavate omaduste nimed. Iga läbimine määrab tsüklimuutujale järgmise võtme ja väärtus loetakse nurksulgudes.

const student = {
    name: "Ann",
    age: 21,
    course: "JavaScript"
};

for (const key in student) {
    console.log(key + " : " + student[key]);
}

Väljund:

name : Ann
age : 21
course : JavaScript

💡 Näpunäide: Väldi massiivide puhul funktsiooni „for…”. See tagastab indeksiväärtused stringidena ja külastab ka päritud omadusi, mis võib anda üllatavaid tulemusi. Kasuta massiivide puhul hoopis funktsiooni „for…of” või klassikalist „for” tsüklit.

for…of tsükkel ja forEach

Tsükkel for…of loeb mis tahes itereeruva objekti, sh massiivide, stringide, kaartide ja komplektide väärtusi. Meetod forEach saavutab sama tulemuse tagasihelistusfunktsiooniga ja annab juurdepääsu indeksile.

const students = ["John", "Ann", "Aaron"];

// for...of reads each value directly
for (const name of students) {
    console.log(name);
}

// forEach supplies the value and the index
students.forEach(function (name, index) {
    console.log(index + " - " + name);
});

// strings are iterable too
for (const letter of "Ann") {
    console.log(letter);
}

Väljund:

John
Ann
Aaron
0 - John
1 - Ann
2 - Aaron
A
n
n

Üks praktiline erinevus on oluline: break ja continue töötavad funktsiooni for…of sees, aga neid ei saa kasutada funktsiooni forEach sees, sest iga tagasihelistusfunktsioon on eraldi funktsioon.

katkestus- ja jätkamislaused

Kaks märksõna muudavad iga tsükli tavapärast kulgu. BREAK-lause lahkub tsüklist täielikult ja continue-lause katkestab praeguse tsükli ja hüppab järgmise juurde.

const numbers = [4, 7, 10, 13, 16, 19];

// continue: skip odd numbers
for (const n of numbers) {
    if (n % 2 !== 0) {
        continue;
    }
    console.log("even: " + n);
}

// break: stop at the first value above 12
for (const n of numbers) {
    if (n > 12) {
        console.log("first value above 12: " + n);
        break;
    }
}

Väljund:

even: 4
even: 10
even: 16
first value above 12: 13

Tsüklid esinevad peaaegu igas skriptis, mida kirjutate. Jätkake praktiline JavaSkriptikoodi näited, külastage uuesti JavaSkriptimassiivi meetodid nende tsüklite peale ehitatud iteratsiooniabiliste jaoks ja lugege sisemine ja väline JavaScript et otsustada, kuhu valmis skript peaks asuma.

KKK

While tsükkel testib tingimust enne esimest läbimist, seega ei pruugi ploki sisu kunagi käivituda. Do…while tsükkel testib pärast, mis garanteerib ploki vähemalt ühe käivitamise.

Jah. Sisemine tsükkel viib lõpule iga välimise tsükli käigu iga üksiku käigu puhul, nii ehitataksegi ruudustikke ja tabeleid. Välise indeksi ülekirjutamise vältimiseks kasutage erinevaid loendurinimesid.

Sulgege mõjutatud vahekaart ja parandage enne uuesti laadimist tingimus või värskenduslause. Loenduri lisamine, mis katkeb pärast maksimaalset läbimiste arvu, hoiab ära kordumise arenduse ajal.

Klassikaline for-tsükkel on suurte massiivide puhul veidi kiirem, kuna see väldib tagasihelistamise lisakulu. Alla mõne tuhande elemendi puhul on erinevus tühine, seega eelista loetavust.

Tavaliselt on nende vaikeseadeks „for…of” või „map”. RevVaadake soovitust, kui ülesanne vajab indeksit, varajast väljumist või garanteeritud esimest läbimist, kuna need juhtumid nõuavad teistsugust vormi.

Tsükkel „for await…of“ loeb voogedastusvastusest tükke ja lisab iga märgi lehele. See on tsükli „for…of“ asünkroonne vaste ja nõuab asünkroonse funktsiooni olemasolu.

Võta see postitus kokku järgmiselt: