Toistolauseet - for - do - while

Kaikissa ohjemointikielissä tarvitsemme toistolauseita. Useimmiten toistolauseet rakentuvat hyvin samankaltaisesti: Ensin määrittelemme muuttujan, jossa pidetään yllä toistojen määrää tai lopetusehtoa. Sen jälkeen määrittelemme tosi-epätosi -lauseella, pitäisikö toistoa jatkaa. Viimeiseksi rakennamme lohkon, jossa on toistettavat lauseet.

For -lause

For -lausetta käytetään useimmiten silloin, kun tiedetään haluttavien toistojen määrä.
Lauseen yleinen muoto on:


for (muuttuja = alkuarvo ; ehto ; muutujan muutos kierroksella){  

	toistettavat käskyt;
};

Esimerkiksi:


for (var i=0; i<3; i=i+1){  

	window.alert("kierros: " + i);
};

Seuraavassa for-lause on kirjoittu funktion sisään:


<script Language="JavaScript">

function toistafor(){

	for (var i=0; i<3; i=i+1){  
		window.alert("kierros: " + i);
	};
}

</script>

<input type="button" value="Toista for-lause" onClick="toistafor();" />


While -lause

While lauseessa laitamme ensin normaaleihin sulkeisiin ehdon, jonka jälkeen aaltosulkeilla määrittelemme toistettavat lauseet.


<div id="xxx">Jokin teksti - kenttä</div>
<input type="text" id="yyy" value="Tekstiä" />

<script Language="JavaScript">

function Toista(){

	var vastaus = "";

	while (vastaus != "oikea"){
		vastaus = window.prompt("Anna");
	};

}

</script>

<input type="button" value="Toista kysely" onClick="Toista();" />

Do while -lause

Do while -lauseessa suoritetaan ensin mahdollisesti toistettavat käskyt, jonka jälkeen vasta testataan, pitääkö käskyt suorittaa uudestaan.


<div id="xxx">Jokin teksti - kenttä</div>
<input type="text" id="yyy" value="Tekstiä" />

<script Language="JavaScript">

function doToisto(){

	var vastaus = "";

	do {
		vastaus = window.prompt("Anna jotain:");
	}while (vastaus == "");

	window.alert("Annoit: " + vastaus);
}

</script>

<input type="button" value="Toista kysely" onClick="doToisto();" />



window.setInterval

Joskus tarvitsemme myös jonkin tapahtuman tai funktion, joka toistuu tasaisin väliajoin.
Silloin tarvitsemme setInterval -objektia.

Objekti esitellään kuten mikä tahansa muuttuja. Parametriksi voimme kuitenkin asettaa kokonaisen toistettavat asiat ja toistovälin millisekunteina. Muoto on siis:

Toiston peruminen tapahtuu käskyllä:

Esimerkki

Tehdään yksinkertainen sekuntinäyttö, ts. suurennetaaan kokonaislukua sekunnin välein.


<script language="JavaScript">

var luku = 0;	//esitellään numero

var toistin;	//esitellään toistin tässä
		//jotta se on käytössä kaikissa 
		//funktioissa

function muutaluku(){

	luku = luku + 1;	//funktio lisää lukuun 1:n
	if (luku > 60){		//jos mennään yli 60:n
		luku = 0;	//aloitetaan alusta
	}

	//kirjoitetaan luku div-kenttään
	document.getElementById("numero").innerHTML = luku;
}

function aloita(){

	//toistin kutsuu funtiota muutaluku() joka sekunti (1000 ms)
	
	toistin = window.setInterval(function(){muutaluku();}, 1000);
	
}

function lopeta(){

	window.clearInterval(toistin);
	//peruutetaan toisto
}

</script>

<ul>
<div id="numero" style="height:30px;" ></div>

<input type="button" value="Aloita" onClick="aloita();" />
<input type="button" value="Lopeta" onClick="lopeta();" />
</ul>