Tässä opetusohjelmassa opit while loopista ja do… while loopista esimerkkien avulla.
Ohjelmoinnissa silmukoita käytetään toistamaan koodilohko. Esimerkiksi, jos haluat näyttää viestin 100 kertaa, voit käyttää silmukkaa. Se on vain yksinkertainen esimerkki; voit saavuttaa paljon enemmän silmukoilla.
Edellisessä opetusohjelmassa opit JavaScript for loop -sovelluksesta. Tässä aiot oppia while
ja do… while
silmukoita.
JavaScript samalla kun silmukka
while
Silmukan syntaksi on:
while (condition) ( // body of loop )
Tässä,
while
Silmukka arvioi ehto sulkeiden sisään()
.- Jos ehto arvioi arvon
true
,while
silmukan sisällä oleva koodi suoritetaan. - Ehto arvioidaan uudelleen.
- Tämä prosessi jatkuu, kunnes ehto on
false
. - Kun ehto arvioidaan
false
, silmukka pysähtyy.
Saat lisätietoja olosuhteista käymällä JavaScript-vertailu- ja loogiset operaattorit -sivulla.
Vuokaavio silmukasta

Esimerkki 1: Näytä numerot 1-5
// program to display numbers from 1 to 5 // initialize the variable let i = 1, n = 5; // while loop from i = 1 to 5 while (i <= n) ( console.log(i); i += 1; )
Tuotos
1 2 3 4 5
Näin tämä ohjelma toimii.
Toisto | Vaihteleva | Ehto: i <= n | Toiminta |
---|---|---|---|
1 | i = 1 n = 5 | true | 1 on tulostettu. i korotetaan arvoon 2 . |
2. | i = 2 n = 5 | true | 2 on tulostettu. i korotetaan arvoon 3 . |
3. | i = 3 n = 5 | true | 3 on tulostettu. i korotetaan arvoon 4 . |
4. päivä | i = 4 n = 5 | true | 4 on tulostettu. i korotetaan arvoon 5 . |
5. | i = 5 n = 5 | true | 5 on tulostettu. i korotetaan arvoon 6 . |
6. | i = 6 n = 5 | false | Silmukka on päättynyt |
Esimerkki 2: Vain positiivisten lukujen summa
// program to find the sum of positive numbers // if the user enters a negative numbers, the loop ends // the negative number entered is not added to sum let sum = 0; // take input from the user let number = parseInt(prompt('Enter a number: ')); while(number>= 0) ( // add all positive numbers sum += number; // take input again if the number is positive number = parseInt(prompt('Enter a number: ')); ) // display the sum console.log(`The sum is $(sum).`);
Tuotos
Syötä numero: 2 Syötä numero: 5 Syötä numero: 7 Syötä numero: 0 Syötä numero: -3 Summa on 14.
Yllä olevassa ohjelmassa käyttäjää kehotetaan syöttämään numero.
Tässä parseInt()
käytetään, koska se prompt()
vie käyttäjän syötteen merkkijonona. Ja kun numeeriset merkkijonot lisätään, se käyttäytyy merkkijonona. Esimerkiksi '2' + '3' = '23'
. Joten parseInt()
muuntaa numeerisen merkkijonon luvuksi.
while
Silmukka jatkuu, kunnes käyttäjä syöttää negatiivinen luku. Kunkin iteraation aikana käyttäjän syöttämä numero lisätään sum
muuttujaan.
Kun käyttäjä syöttää negatiivisen luvun, silmukka päättyy. Lopuksi näytetään kokonaissumma.
JavaScript ei… kun taas silmukka
do… while
Silmukan syntaksi on:
do ( // body of loop ) while(condition)
Tässä,
- Silmukan runko suoritetaan aluksi. Sitten kunto arvioidaan.
- Jos ehto arvioi arvon
true
,do
lauseen sisällä olevan silmukan runko suoritetaan uudelleen. - Ehto arvioidaan uudelleen.
- Jos ehto arvioi arvon
true
,do
lauseen sisällä olevan silmukan runko suoritetaan uudelleen. - Tämä prosessi jatkuu, kunnes ehto arvioidaan
false
. Sitten silmukka pysähtyy.
Huomaa : do… while
silmukka on samanlainen kuin while
silmukka. Ainoa ero on, että do… while
silmukassa silmukan runko suoritetaan ainakin kerran.
Vuokaavio tehtävästä … samalla kun silmukka

Katsotaanpa do… while
silmukan toimintaa.
Esimerkki 3: Näytä numerot 1-5
// program to display numbers let i = 1; const n = 5; // do… while loop from 1 to 5 do ( console.log(i); i++; ) while(i <= n);
Tuotos
1 2 3 4 5
Näin tämä ohjelma toimii.
Toisto | Vaihteleva | Ehto: i <= n | Toiminta |
---|---|---|---|
i = 1 n = 5 | ei tarkistettu | 1 on tulostettu. i korotetaan arvoon 2 . | |
1 | i = 2 n = 5 | true | 2 on tulostettu. i korotetaan arvoon 3 . |
2. | i = 3 n = 5 | true | 3 on tulostettu. i korotetaan arvoon 4 . |
3. | i = 4 n = 5 | true | 4 on tulostettu. i korotetaan arvoon 5 . |
4. päivä | i = 5 n = 5 | true | 6 on tulostettu. i korotetaan arvoon 6 . |
5. | i = 6 n = 5 | false | Silmukka on päättynyt |
Esimerkki 4: Positiivisten lukujen summa
// to find the sum of positive numbers // if the user enters negative number, the loop terminates // negative number is not added to sum let sum = 0; let number = 0; do ( sum += number; number = parseInt(prompt('Enter a number: ')); ) while(number>= 0) console.log(`The sum is $(sum).`);
Lähtö 1
Syötä numero: 2 Syötä numero: 4 Syötä numero: -500 Summa on 6.
Here, the do… while
loop continues until the user enters a negative number. When the number is negative, the loop terminates; the negative number is not added to the sum variable.
Output 2
Enter a number: -80 The sum is 0.
The body of the do… while
loop runs only once if the user enters a negative number.
Infinite while Loop
If the condition of a loop is always true
, the loop runs for infinite times (until the memory is full). For example,
// infinite while loop while(true)( // body of loop )
Here is an example of an infinite do… while
loop.
// infinite do… while loop const count = 1; do ( // body of loop ) while(count == 1)
In the above programs, the condition is always true
. Hence, the loop body will run for infinite times.
for Vs while Loop
A for
loop is usually used when the number of iterations is known. For example,
// this loop is iterated 5 times for (let i = 1; i <=5; ++i) ( // body of loop )
Ja while
ja do… while
silmukoita käytetään yleensä, kun iteraatioiden määrää ei tunneta. Esimerkiksi,
while (condition) ( // body of loop )