# Een programma laten stoppen met herhalen [Programmeergidsen](LEESMIJ.md) Een lus herhaalt opdrachten. Een `zolang`-lus controleert vóór elke ronde een voorwaarde. Hij herhaalt alleen zolang die voorwaarde waar is. Om te stoppen moet iets ervoor zorgen dat de voorwaarde uiteindelijk onwaar wordt. Beantwoord vóór het schrijven drie vragen: Waar begin ik? Wat verandert er elke ronde? Wanneer moet ik stoppen? ## Tel af voor een lancering Denk aan een aftelling: drie, twee, één, lancering. Als de omroeper steeds drie zegt en het getal nooit verlaagt, komt de lancering nooit. Hetzelfde kan in een programma gebeuren. Een voorwaarde wordt opnieuw gecontroleerd, maar door die controle veranderen de waarden niet vanzelf. ## Schrijf een stopvoorwaarde ```pliro # taal: nl laat resterend = 3 zolang resterend > 0: zeg resterend zet resterend = resterend - 1 zeg "Lancering!" ``` De beginwaarde is drie. Elke ronde trekt één af. Wanneer de waarde nul wordt, is `resterend > 0` onwaar. Het programma gaat dan verder na de lus. Dit voorbeeld wacht niet tussen de berichten: ze verschijnen snel achter elkaar. ## Voorspel en probeer Zal de lus ook nul tonen? ```text 3 2 1 Lancering! ``` Nee. De volgende controle gebeurt voordat de lus nul zou kunnen tonen. Als de beginwaarde al nul was, zou de inhoud van de lus helemaal niet worden uitgevoerd. ## Jouw uitdaging Begin bij vijf. Verander daarna de regel zodat nul ook verschijnt. Welke vergelijking heb je daarvoor nodig? Volg beide versies op papier, zodat je precies ziet wanneer ze stoppen. ## Een veelgemaakte fout Als je het aftrekken vergeet, blijft `resterend` hetzelfde. In de logica van het programma ontstaat dan een **oneindige lus**. Je hoeft die niet uit te voeren om het probleem te onderzoeken: een volgtabel laat het al zien. Gebruik Stop als een programma onverwacht blijft draaien. Pliro heeft uitvoergrenzen om vastlopende herhalingen te helpen opvangen. Een bereikte grens is een aanwijzing om de stopregel te bekijken, niet om steeds de grens te verhogen. In een interactief spel kan een lus bewust blijven lopen totdat een speler stopt. Ook dan zijn een stopmogelijkheid en passend wachten of gebeurtenisafhandeling nodig. ## Verder leren [De zolang-lus](../syntaxis/zolang.md) · [Een programma volgen](stap-voor-stap-volgen.md) · [Animatie en timing](animatie.md)