Les 7: Lussen

Vaak als je code schrijft, wil je hetzelfde blok van de code weer te lopen over en op een rij. In plaats van het toevoegen van meerdere bijna gelijke regels in een script kunnen we lussen gebruikt om een taak als deze uit te voeren.

Als je een programma schrijft maak je vaak gebruik van herhalingen. Dat werkt veel beter en handiger dan wanneer je dezelfde code een groot aantal keren opnieuw moet schrijven. Om deze herhalingen uit te voeren kun je gebruik maken van 'lussn'.

In JavaScript, zijn er twee verschillende soorten lussen:

* FOR - loopt een bepaald aantal keren door een stuk code
* WHILE - loopt door een stuk code, zolang aan een bepaalde voorwaarde voldaan wordt.

For

Bekijk onderstaand voorbeeld

<html>
<head>
<title>For lus</title>
</head>
<body>
<SCRIPT language = JavaScript>
var tafel = 4;                                                  // de tafel van 4
for( teller=1; teller<11; teller++)
    {
    document.write (teller * tafel);              //het resultaat wordt 10x getoond
    document.write ("<br>");
    }
</SCRIPT>

</body>
</html>

Als je even goed kijkt, zie je dat dit script de tafel van 4 afdrukt. De getallen komen onder elkaar te staan, door de regel document.write ("</br>");
De lus wordt bepaald door de regel for( teller=1; teller<11; teller++)
Je begint met for (= zolang),
daarna tussen haakjes drie dingen, gescheiden door puntkomma:
    teller =1         een variabele met een waarde. Dit is de beginwaarde van de lus.
    teller<11       dit geeft aan hoe lang de lus moet doorgaan. In dit geval is dus 10 de laatste waarde van teller)
    teller++         de teller wordt steeds met 1 opgehoogd. Dus eerst 1 dan 2 dan 3 enz.
Vervolgens staan tussen accolades de oprachten die herhaald worden uitgevoerd. In dit geval het schrijven van de vermenigvuldiging, en de nieuweregel-aanduiding:
    {
    document.write (teller * tafel);
    document.write ("/br");
    }

Kortom:
De for-lus bestaat uit drie onderdelen: eerst aangeven wat de startwaarde is van de lus. Daarna aangeven tot hoever de lus moet doorgaan. Tot slot aangeven hoe de startwaarde steeds verandert.En tussen de { en } moet je zetten wat er in de lus gebeurt.

While

Een andere manier om hetzelfde te bereiken is de while-lus. Hier wordt de startwaarde vóór de lus bepaald, en de verandering van de startwaarde vindt in de lus plaats.
Hetzelfde voorbeeld nogmaals, maar nu met een while-lus:

<html>
<head>
<title>While lus</title>
</head>
<body>
<SCRIPT language = JavaScript>
var tafel = 4;                                                  // de tafel van 4
var teller = 1;                                                 // de teller wordt op 1 gezet
while( teller<11)
    {
    document.write (teller * tafel);              //het resultaat wordt 10x getoond
    document.write ("<br>");
    teller++;
    }
</SCRIPT>

</body>
</html>

We lopen het even langs:
    var teller = 1;          vóór de lus wordt de beginwaarde vastgesteld
    while( teller<11)     de regel die de lus bepaalt. Tussen haakjes staat alleen de voorwaarde tot hoever de lus moet doorgaan)
                                     Daarna tussen accoladen wat er in de lus gebeurt.
    teller++;                  Het ophogen van gebeurt in een eigen regel binnen de lus.

Nog even dit:

Uiteraard kun je in plaats van teller<11 ook noteren: teller<=10
Je kunt gebruik maken van alle vergelijkings-operatoren (zie les 4).

Ook kun je meerdere voorwaarden tegelijk toepassen door gebruik te maken van 'logische operatoren' (zie les 4)

Probeer je bij de while-lus eens voor te stellen wat er gebeurt als je de regel teller++;   weglaat.
Inderdaad, er wordt nooit aan de voorwaarde voldaan, en de lus blijft eindeloos uitgevoerd worden. Het enige wat je dan kunt doen is je browser-venster sluiten het te stoppen.
Zorg dus bij een while-lus altijd voor een regel, die bepaalt dat de lus beëindigd wordt.

Einde les 7