Game Maker: Het switch-statement
Deze tutorial gaat over het switch-statement, het case-statement, het break-statement en het default-statement. Het gebruik van deze statements in plaats van een lange reeks van if en else kan uw code overzichtelijker maken en optimalizeren.
Een switch-statement wordt gebruikt om een actie te laten gebeuren afhankelijk van de waarde van een variabele of een expressie. Een switch-statement heeft de volgende constructie:
switch(<expressie>) { <...> }
Dit is uiteraard nog een beetje leeg. Binnen het switch-statement kunt u verschillende case-statements opnemen. Daarmee vergelijkt u de "geswitchte" waarde. Een case-statement heeft de volgende opbouw:
case <expressie>: <statements>;
Als de "geswitchte" waarde hetzelfde is als de waarde van het case-statement, dan wordt vanaf die case alle code tot een break-statement of het einde van de switch uitgevoerd. Het break-statement stopt namelijk de uitvoering van codes binnen de switch. (Het break-statement kan overigens ook in lusstructuren gebruikt worden om deze lussen te beëindigen.) Hier een voorbeeld:
switch(variabele) { case 0: show_message("De variabele heeft de waarde 0!"); case 1: show_message("Dit bericht ziet u omdat de variabele of de waarde 0 of de waarde 1 heeft.#" + "Indien het de waarde 0 heeft, heeft u net al een bericht gekregen."); break; case 2: show_message("De variabele heeft de waarde 2!"); }
Tenslotte kunt u nog een default-statement toevoegen, dat wordt uitgevoerd indien geen van de voorgaande case-statements de waarde van de variabele had. Na het default statement gebruikt u geen case-statements meer; u kunt er nog wel een break-statement achter zetten, maar dit heeft geen effect. Hier nog een laatste voorbeeld:
switch(variabele) { case 0: show_message("De variabele heeft de waarde 0!"); case 1: show_message("Dit bericht ziet u omdat de variabele of de waarde 0 of de waarde 1 heeft.#" + "Indien het de waarde 0 heeft, heeft u net al een bericht gekregen."); break; case 2: show_message("De variabele heeft de waarde 2!"); break; default: show_message("De variabele heeft een andere waarde dan 0, 1 of 2. Daarom wordt het default-statement uitgevoerd."); }