Controle Statementen

Home / Programmeren / Basic / Controlestatementen

Zo, dan gaan we nu beginnen aan een andere belangrijk ding in het programmeren: Controle van voorwaardes. Hopelijk heb je de basisbeginselen goed doorgenomen, want die moet je nu goed kennen!

BASIC Voorbeeld

In de basis tutorials hebben we het al gehad over die booleaanse wiskunde. Die gaan we hier gebruiken. Een voorbeeld:

CLS
DIM invoer%
INPUT "Voer een 1 in om verder te gaan, en een 0 om te stoppen", invoer%
IF (invoer% = 1) THEN
Hier komt de rest van jouw programma... Dit krijgt de gebruiker alleen te zien als invoer$ gelijk is aan 1
END IF
END

Wat is hier nu precies gebeurd?

  1. Allereerst wordt met CLS het scherm leeggemaakt.
  2. Dan wordt met DIM invoer% een nieuwe variabele met de naam invoer gemaakt.
  3. Met INPUT zet je een vraag op het scherm en laat je de gebruiker vervolgens zijn keuze invoeren.
  4. Met IF wordt namelijk gecontroleerd of in de variabele invoer% gelijk is aan 1, vandaar ook het = teken.
  5. Daarachter staat THEN, dat hoort nog bij IF.
  6. Daarna komt de rest van jouw programma.
  7. Dan staat er END IF, wat betekend dat jouw IF-constructie hier is afgelopen.
  8. Als laatste staat er END, wat je programma afsluit.

Hopelijk is het een beetje te snappen. We gaan namelijk vrij snel door de stof heen. Misschien is het nut van zoiets je niet helemaal duidelijk maar dat zal je snel genoeg duidelijk worden!

Controle

In de basisbeginselen bespraken we ook de verschillende soorten van controle. De gebruikte tekens verschillen per programmeertaal. Hier is het lijstje van de tekens bij BASIC:

Controleren ofTekenExpressieKlopt als...
Is gelijk aan=waardea$ = 27klopt als waardea hetzelfde is als 27
Is kleiner dan<waardea$ < 27klopt als waardea kleiner is dan 27
Is groter dan>waardea$ > 27klopt als waardea groter is dan 27
Is niet gelijk aan<>waardea$ <> 27klopt als waardea niet gelijk is aan 27
Is kleiner dan of gelijk aan<=waardea$ <=; 27klopt als waardea kleiner is dan of gelijk is aan 27
Is groter dan of gelijk aan>=waardea$ >=; 27klopt als waardea groter is dan of gelijk is aan 27

Even ter verduidelijking: het woord expressie gebruiken we altijd als we hebben over die booleaanse wiskunde.

Complexer controleren

We gaan weer verder aan de hand van een ander voorbeeld: je hebt een programma dat de gebruiker om zijn salaris vraagt. Aan de hand van het ingevoerde salaris geeft hij een waarde terug.

CLS
DIM salaris%
INPUT "Wat is je maandsalaris in euro's? ",salaris%
IF (salaris% < 5000) THEN
PRINT "Het wordt tijd dat je om meer gaat vragen!"
ELSE
PRINT "Zo, lekker salaris heb jij! Dat zou ik ook wel willen!"
ENDIF
END

Even een stap-voor-stap uitleg:

  1. Met CLS maak je het scherm leeg
  2. Met DIM maak je de variabele salaris$ aan, met het type integer, deze kan dus getallen bevatten.
  3. Met INPUT zet je de vraag: Wat is je maandsalaris in euro's? op het scherm, en wacht je tot de gebruikr iets invoert.
  4. Met deze voorwaarde controleer je of de ingevoerde waarde kleiner is dan 5000
  5. PRINT zet een regel tekst op het scherm. Deze komt alleen op het scherm als de ingevoerde waarde kleiner is dan 5000
  6. ELSE geeft aan dat de IF hier is afgelopen, en dat alles dat hierna komt alleen wordt uitgevoerd als de IF van hiervoor niet waar was.
  7. PRINT zet een regel tekst op het scherm, maar alleen als het salaris niet lager dan 5000 (dus hoger of gelijk aan 5000) was.
  8. ENDIF geeft aan dat de IF-constructie hier eindigd.
  9. END geeft het einde van het programma aan.

Zoals je ziet is het gebruik van ELSE in veel gevallen erg handig. Je zult het nog vaak tegenkomen. Er is echter nog een derde "statement" dat op IF lijkt. (een statement is trouwens een speciale programmeerconstructie, zoals IF en ELSE) Dat is ELSEIF. Het is een soort kruising tussen ELSE en IF. Ik ga er niet teveel woorden aan vuil maken, kijk maar goed naar het volgende voorbeeld:

CLS
DIM salaris%
INPUT "Wat is je maandsalaris in euro's? ",salaris%
IF (salaris% < 5000) THEN
PRINT "Minder dan 5000? Het wordt tijd dat je om meer gaat vragen!"
ELSEIF (salaris% < 10000) THEN
PRINT "Tussen de 5000 en 10000! Goed voor elkaar ;)"
ELSE
PRINT "Meer dan 10000? Dat zou ik ook wel willen!"
ENDIF
END

Weer een stap-voor-stap uitleg:

  1. Met CLS maak je het scherm leeg
  2. Met DIM maak je de variabele salaris$ aan, met het type integer, deze kan dus getallen bevatten.
  3. Met INPUT zet je de vraag: Wat is je maandsalaris in euro's? op het scherm, en wacht je tot de gebruikr iets invoert.
  4. Met deze voorwaarde controleer je of de ingevoerde waarde kleiner is dan 5000
  5. PRINT zet een regel tekst op het scherm. Deze komt alleen op het scherm als de ingevoerde waarde kleiner is dan 5000
  6. ELSEIF zet een voorwaarde klaar die alleen gecontroleerd wordt als de eerste IF niet waar was. In dit geval wordt de voorwaarde dus alleen gecontroleerd als salaris% groter is dan 5000
  7. ELSE geeft aan dat alles dat hierna komt alleen wordt uitgevoerd als de IF van hiervoor niet waar was.
  8. PRINT zet een regel tekst op het scherm, maar alleen als het salaris niet lager dan 5000 en niet lager dan 10000 (dus hoger of gelijk aan 10000) was.
  9. ENDIF geeft aan dat de IF-constructie hier eindigd.
  10. END geeft het einde van het programma aan.

Onthoud dat je IF naar wens kunt aanvullen met ELSEIF en ELSE en dat je ELSEIF zo vaak kunt gebruiken als je wilt. Je kunt bijvoorbeeld IF gebruiken met 6 ELSEIF's of iets dergelijks. Dat doe je op precies dezelfde manier als hierboven. Je krijgt dan zoiets:

Deze code is weggelaten. Hier wordt de variabele getal% aangemaakt
IF (getal% < 10) THEN
PRINT "Dit getal is kleiner dan 10"
ELSEIF (getal% < 20) THEN
PRINT "Dit getal is tussen de 10 en de 20"
ELSEIF (getal% < 30) THEN
PRINT "Dit getal is tussen de 20 en de 30"
ELSEIF (getal% < 100) THEN
PRINT "Dit getal is tussen de 30 en de 100"
ENDIF

Hopelijk is dit een beetje duidelijk. Ik hoop dat je je erheen weet te worstelen, want deze les is erg belangrijk. Je hebt in ieder geval de moeite genomen om tot dit stukje te lezen. ;)