JavaScript
JAVASCRIPTIIN LIITTYVÄÄ KOULUTUSTA VUONNA 2025!
Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.
JavaScriptin ohjausrakenteet: While- ja Do-White toistolauseet
While-toistolause
While-toistolause toistaa koodilohkoa niin kauan kuin ehto on tosi (true
).
Toistolause koostuu while-käskystä ja siihen liittyvästä ehtolauseesta:
while (ehto) {
// suorita jotain
}
Esimerkiksi seuraava koodi tulostaa muuttujan a
arvon kahdesti:
var a = 0;
while (a <= 1) {
console.log("muuttujan a arvo on ",a,"<br>");
a = a+1;
}
While-silmukoiden ensisijainen käyttökohde on nykyisin synkronisissa laskutehtävissä. Sen sijaan asynkroniset tapahtumat käsitellään modernissa JavaScriptissä while-lauseen sijaan tapahtumankuuntelijoiden, callbackien, lupausten (promises) tai async/await-rakenteen avulla.
Varo ikisilmukkaa
While-toistolausetta käyttäessä tulee varoa ns. ikisilmukan syntymistä. Ikisilmukka syntyy, kun toistolauseen ehto ei koskaan täyty ja silmukka jatkuu loputtomasti. Tämä voi aiheuttaa suoritusongelmia ja sovelluksen kaatumisen. Osa selaimista tunnistaa ja estää mahdolliset ikisilmukat käyttäjäkokemuksen parantamiseksi.
Seuraava koodi on esimerkki ikisilmukasta. Älä kokeile tätä muualla kuin paikallisessa kehitysympäristössäsi:
var a = 0;
while (a < 1) {
//a on aina pienempi kuin 1
console.log("moi");
}
Do-While-toistolause
While-lauseen lisäksi on olemassa do-while
-toistolause, joka tarjoaa hieman erilaisen lähestymistavan.
Erona on nk. do-lohko, joka suoritetaan vähintäänkin kerran vaikka while-ehto ei toteutuisikaan.
Tämä ominaisuus on hyödyllinen tilanteissa, joissa halutaan varmistaa, että jokin toiminto suoritetaan ainakin kerran, vaikka ehto ei täyttyisi.
Do-white
rakenteen syntaksi on :
do {
// suoritetaan vähintäänkin kerran
}
while (ehto) {
// suoritettava koodi
}
Esimerkiksi:
do {
a = a+1;
console.log("Arvo on ",a,"<br>");
}
while (a > 2) {
console.log("muuttujan a arvo on ",a,"<br>");
a = a+1;
}
break ja continue ohjaavat suorittamista
While-lause tarjoaa kaksi kontrollikomentoa, joilla voidaan hallita silmukan suoritusta:
break
: Keskeyttää silmukan suorituksen välittömästi.continue
: Palaa silmukan alkuun ja suorittaa seuraavan iteraation.
Nämä rakenteet tarjoavat joustavuutta toistarakenteeseen, mutta niiden oikeaoppinen käyttö vaatii huolellista suunnittelua.
Break
-komento on hyödyllinen esimerkiksi silloin, kun havaitaan jokin virheellinen tila, ja silmukan jatkaminen ei ole mielekästä.
Continue
-komento puolestaan sopii tapauksiin, joissa tietyt tilanteet halutaan jättää huomiotta silmukan sisällä.
Alla yksinkertainen esimerkki break
-rakenteen käytöstä:
var a = 0;
var k = 50;
while (a <= 100) {
a = a+1;
k = k + a;
if (k > 100){
break;
}
console.log("muuttujan a arvo on ",a,"<br>");
console.log("muuttujan k arvo on ",k,"<br>");
}