Functies
Wat leer ik?
- Wat een functie is
- Hoe je een functie maakt
- Hoe je een variabele kan doorgeven naar een functie
Wanneer je grotere programma's schrijft, of gewoon een langere tijd met code bezig bent, zul je merken dat je een aantal dingen hergebruikt. Op dat moment worden functies een handige tool.
Functies als recepten uit een kookboek
Functies kan je vergelijken met recepten uit een kookboek.
Wanneer je bv. pannenkoeken bakt, heb je een aantal ingrediënten nodig en doorloop je een aantal handelingen, tot de pannenkoek klaar is. bv.:
- meng bloem, eieren, melk en suiker
- opkloppen tot een smeuïg geheel
- pan verwarmen met boter
- deeg in de pan scheppen
- afbakken
Wanneer je dit lijstje 1 keer moet typen als instructies voor de computer in code, is dat geen probleem. Maar stel je voor dat je 1000 pannenkoeken wil laten maken door de computer. Het lijstje copy/pasten is onoverzichtelijk en als je iets in het recept wil veranderen, moet je het 1000 keer aanpassen. Misschien wil je het recept ook wel in een ander programma een keer gebruiken. Functies zijn een manier om orde, structuur en overzichtelijkheid in je code aan te brengen.
Een functie zorgt ervoor dat je dit recept kan samenpakken onder 1 naam. bv. bakPannenkoek. Door in je code bakPannenkoek()
aan te roepen, voert de computer al de regels code uit die onder die naam hangen. Alsof de computer in het kookboek gaat zoeken naar het recept voor "pannenkoek", dit vindt en vervolgens helemaal uitvoert.
Functies worden nooit automatisch uitgevoerd. Ze hebben geen ingebakken flow zoals setup (automatisch 1 keer bij het starten van je programma) of draw (continu lus). Functies worden alleen uitgevoerd als wij ze aanroepen.
Op het moment dat een functie wordt aangeroepen worden eerst alle regels code in de functie afgewerkt. Vervolgens gaat het programma verder vlak na de functie. Als voorbeeld gebruiken we onderstaande codevoorbeeld. De volgorde van uitvoeren is hier :
- 1
- 2
- hier komen we mijnFunctie tegen, die zoeken we op, en eerst worden de regels in mijnFunctie uitgevoerd dus:
- 5
- 6
- 7
- mijnFunctie is klaar, dus springen we terug naar setup, op het punt vlak achter mijnFunctie
- 3
- 4
de functie voor pannenkoek() ziet er zo uit: ze wordt meestal onderaan het programma geplaatst, na de sluit { van de draw loop.
wanneer ik nu ergens anders in mijn programma pannenkoek() typ, wordt het hele lijstje op die plaats afgewerkt. Bv:
parameters doorgeven
Je merkt dat wanneer we een functie aanroepen er steeds () achter staat. Dit kan worden gebruikt om een variabele in een functie mee te geven. Klinkt ingewikkeld, maar als we terug naar ons pannenkoek recept kijken, kan het zo zijn dat je verschillende soorten pannenkoeken wil maken. Sommige met gewone melk, andere met soja melk en weer andere met chocolade melk. Om niet voor elke soort pannenkoek een andere functie te moeten schrijven, kunnen we binnen de haakjes aangeven welk van onze ingrediënten variabel (of veranderbaar) is. de functie gaat er dan zo uitzien:
veranderendIngredient is een lokale variabele. Deze wordt aangemaakt op het moment dat de functie wordt aangeroepen, en vernietigd als deze is afgerond.
wanneer we nu in ons programma pannenkoek "chocolademelk" aanroepen:
wordt chocolademelk ingevoegd in de variabele veranderendIngredient en maken we dus chocolademelk pannenkoek:
- meng bloem, eieren, chocolademelk en suiker
- opkloppen tot een smeuïg geheel
- pan verwarmen met boter
- deeg in de pan scheppen
- afbakken
Doen we hetzelfde met rijstmelk, dan wordt het:
wordt rijstmelk ingevoegd in de variabele veranderendIngredient en maken we dus een rijstmelk pannenkoek:
- meng bloem, eieren, rijstmelk en suiker
- opkloppen tot een smeuïg geheel
- pan verwarmen met boter
- deeg in de pan scheppen
- afbakken
controle vragen
Hoe roep je op een correcte manier een functie aan? (voorbeeld: pannenkoeken).
Wat is de parameter die in de haken van een functie komt te staan?
Waar wordt een functie doorgaans voor gebruikt ?