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 whileja do… whilesilmukoita.
JavaScript samalla kun silmukka
whileSilmukan syntaksi on:
while (condition) ( // body of loop )
Tässä,
whileSilmukka arvioi ehto sulkeiden sisään().- Jos ehto arvioi arvon
true,whilesilmukan 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
Vuokaavio JavaScriptiä 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 = 1n = 5 | true | 1 on tulostettu. i korotetaan arvoon 2 . |
| 2. | i = 2n = 5 | true | 2 on tulostettu. i korotetaan arvoon 3 . |
| 3. | i = 3n = 5 | true | 3 on tulostettu. i korotetaan arvoon 4 . |
| 4. päivä | i = 4n = 5 | true | 4 on tulostettu. i korotetaan arvoon 5 . |
| 5. | i = 5n = 5 | true | 5 on tulostettu. i korotetaan arvoon 6 . |
| 6. | i = 6n = 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.
whileSilmukka jatkuu, kunnes käyttäjä syöttää negatiivinen luku. Kunkin iteraation aikana käyttäjän syöttämä numero lisätään summuuttujaan.
Kun käyttäjä syöttää negatiivisen luvun, silmukka päättyy. Lopuksi näytetään kokonaissumma.
JavaScript ei… kun taas silmukka
do… whileSilmukan syntaksi on:
do ( // body of loop ) while(condition)
Tässä,
- Silmukan runko suoritetaan aluksi. Sitten kunto arvioidaan.
- Jos ehto arvioi arvon
true,dolauseen sisällä olevan silmukan runko suoritetaan uudelleen. - Ehto arvioidaan uudelleen.
- Jos ehto arvioi arvon
true,dolauseen sisällä olevan silmukan runko suoritetaan uudelleen. - Tämä prosessi jatkuu, kunnes ehto arvioidaan
false. Sitten silmukka pysähtyy.
Huomaa : do… whilesilmukka on samanlainen kuin whilesilmukka. Ainoa ero on, että do… whilesilmukassa silmukan runko suoritetaan ainakin kerran.
Vuokaavio tehtävästä … samalla kun silmukka
Vuokaavio JavaScriptiä… silmukasta
Katsotaanpa do… whilesilmukan 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 = 1n = 5 | ei tarkistettu | 1 on tulostettu. i korotetaan arvoon 2 . | |
| 1 | i = 2n = 5 | true | 2 on tulostettu. i korotetaan arvoon 3 . |
| 2. | i = 3n = 5 | true | 3 on tulostettu. i korotetaan arvoon 4 . |
| 3. | i = 4n = 5 | true | 4 on tulostettu. i korotetaan arvoon 5 . |
| 4. päivä | i = 5n = 5 | true | 6 on tulostettu. i korotetaan arvoon 6 . |
| 5. | i = 6n = 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 whileja do… whilesilmukoita käytetään yleensä, kun iteraatioiden määrää ei tunneta. Esimerkiksi,
while (condition) ( // body of loop )








